Ordinamento di inserimento in javascript

Ordinamento di inserimento in javascript
L'ordinamento di inserzione è un algoritmo di smistamento semplice e stabile che raccoglie un elemento da un elenco non richiesto e lo inserisce nell'elenco ordinato nella posizione appropriata. Mentre il termine algoritmo stabile si riferisce allo scenario in cui due elementi equivalenti appaiono in modo identico, quindi un algoritmo stabile tiene gli elementi nelle loro posizioni relative dopo l'esecuzione dell'algoritmo di ordinamento.

L'algoritmo di ordinamento di inserzione è molto utile in quei casi in cui abbiamo un numero inferiore di elementi in un elenco o in cui la maggior parte dell'elenco è già ordinato e meno elementi sono fuori luogo.

Come funziona l'inserimento

Consideriamo un esempio per comprendere meglio la logica dietro l'ordinamento di inserimento. Supponiamo di avere un array non desiderato di 6 elementi e dobbiamo ordinarli usando l'inserimento:

Ora per ordinare l'array sopra, itereremo l'array dall'indice 1 all'ultimo indice. Inizialmente, assumiamo che il 0 ° indice dell'array sia ordinato, successivamente faremo un confronto tra l'elemento corrente con il suo elemento precedente. Se l'elemento corrente è inferiore all'elemento precedente, allora scambieremo le loro posizioni.

Primo passo
Nel primo passaggio, confronteremo l'indice 1 con l'indice 0, il valore del primo indice "47" è maggiore del valore dell'indice 0 °, quindi non ci sarà alcuna modifica nel primo passaggio (Elements non si scambierebbe):

Secondo passo
Ora, nel secondo passaggio, supponiamo che i primi due elementi siano ordinati, quindi il cursore sarà all'indice 2 e confronteremo l'indice 2 con i suoi elementi precedenti:

Poiché "25" è più piccolo di "47", swap "25" e "47". Successivamente, "25" viene anche confrontato con il valore dell'indice 0 °. '25' è maggiore di '15' quindi non sarebbe scambiato.

L'array dopo il secondo passaggio verrà aggiornato come:

Terzo passo
Qui nel terzo passaggio, consideriamo che i primi tre valori siano ordinati e il cursore sarà al terzo indice. Quindi, confronteremo il terzo indice con i suoi valori precedenti:

All'indice 3, "55" viene confrontato con ciascun elemento uno per uno, ma è maggiore di tutti i suoi elementi precedenti, quindi non vi sarà alcun cambiamento nella posizione degli elementi dell'array.

Quarto passo
Ora siamo all'indice 4, dove abbiamo un valore "20" e dobbiamo confrontarlo con tutti gli elementi precedenti dell'array:

Poiché "20" è inferiore a "25", "47" e "55", quindi verrà inserito al primo indice e "25", "47" e "55" verranno spostati a destra da un indice (INDICE I+1) dai loro indici attuali.

L'array aggiornato sarà:

Quinto passo
Ora siamo all'indice 5 in cui il valore corrente è '10' che è il più piccolo tra tutti i valori di array, quindi verrà inserito al 0 ° indice.

In questo modo, l'intero array verrà ordinato usando l'inserimento:

Come abbiamo fatto con la parte concettuale del tipo di inserimento, ora implementeremo questo concetto in JavaScript.

Implementazione dell'ordinamento di inserimento in JavaScript

Il codice per l'implementazione dell'ordinamento di inserimento in JavaScript è il seguente:

funzione insertion_sort (input_array, array_length)

Lascia che io, Pivot_Value, J;
per (i = 1; i = 0 && input_array [j]> pivot_value)

input_array [j + 1] = input_array [j];
j = j - 1;

input_array [j + 1] = pivot_value;

return input_array;

let input_array = [15,47,25,55,20,10];
let Array_Length = input_array.lunghezza;
insertion_sort (input_array, array_length);
console.log ("Array ordinato finale:", input_array);

Nel codice sopra, abbiamo creato una funzione "Insertion_Sort"E lo ha superato l'array di input e la lunghezza dell'array. Quindi abbiamo iterato il ciclo fino alla lunghezza dell'array.

All'interno del ciclo, abbiamo selezionato il 'pivot_value = input_array [i]"Come valore per gireo per fare un confronto tra l'elemento corrente con i suoi elementi e set precedenti"J = I-1"Che rappresenta l'ultimo elemento del nostro array ordinato.

Qui in ogni iterazione, l'elemento corrente è assegnato al valore per pivot e il valore pivot verrà considerato come il primo elemento dell'array non resortato in ogni passaggio.

Utilizziamo un po 'di tempo per ordinare gli elementi dell'array, qui in questo ciclo confrontiamo l'elemento corrente con i suoi elementi precedenti. Se l'elemento corrente è inferiore a uno qualsiasi degli elementi precedenti e abbiamo trovato la posizione appropriata per inserire quell'elemento nell'array ordinato, inseriamo quell'elemento nella posizione appropriata e spostiamo gli altri elementi un posto sul lato destro. E l'intero fenomeno viene ripetuto per ogni passaggio fino a quando l'array non viene risolto completamente.

Produzione

Infine, chiamiamo "Insertion_Sort"Funzionare e stampare l'array ordinato sulla console del browser usando"console.tronco d'albero" metodo. L'output dell'algoritmo di ordinamento di inserimento sarà:

Conclusione

L'ordinamento di inserzione è un algoritmo di ordinamento che ordina un elemento alla volta. Inserisce l'elemento nella posizione appropriata uno per uno per creare un array ordinato. Fornisce risultati efficienti se il numero di elementi dell'array è piccolo e la maggior parte degli elementi dell'array sono già ordinati.

In questo articolo, abbiamo considerato un esempio per capire la logica del tipo di inserimento, abbiamo discusso del funzionamento dell'algoritmo di ordinamento di inserimento rispetto a ciascun passaggio e presentare l'array aggiornato dopo ogni passaggio. E infine, una volta che abbiamo percepito l'idea alla base del tipo di inserimento, l'abbiamo implementata in JavaScript.