Unisci l'ordinamento in JavaScript

Unisci l'ordinamento in JavaScript
Unisci l'ordinamento divide l'elenco completo in sublisti o in "n" sublisti e continua questo processo in modo ricorsivo fino a quando ogni sotto-elenco non ha un elemento. Una volta completato questo processo di "divisione e conquista.

Come funziona unisci

Ora capiremo il funzionamento dell'ordinamento di unione con l'aiuto di un esempio:

Consideriamo un altro esempio per l'ordinamento di unione in cui abbiamo un totale di sette (dispari) elementi in un array e li ordineremo in ordine crescente:

[5, 7, 1, 4, 6, 3, 2]

Dividi l'array in due sotto-array

[5, 7, 1] e [4, 6, 3, 2]

Ancora una volta ogni array sarà diviso in due subarrays

[5], [7, 1] e [4, 6], [3, 2]

Qui su quattro sotto-array, un sotto-array ha un solo elemento ma gli altri tre array hanno ancora più di un elemento, quindi divideremo ulteriormente ciascuno di quegli array in due array.

[5], [7], [1], [4], [6], [3], [2]

Ora il primo passo è completo poiché ogni array ha un solo elemento. Ora confronteremo gli elementi dell'array e uniremo questi singoli elementi in coppia.

[5, 7], [1, 4], [3, 6], [2]

Facciamo un confronto tra gli elementi dell'array dei primi due array e gli ultimi due array e spostiamo i valori più piccoli sul lato sinistro e valori maggiori sul lato destro.

Verrà condotto un confronto tra gli elementi dei primi due array e i secondi due array. Ad esempio, i primi due array sono [5,7] e [1,4]. 5 verrà innanzitutto paragonato a 1 e poi a 4. Successivamente il secondo elemento che è 7 subirà la stessa procedura e l'array risultante sarà [1,4,5,7]. Ora ci occuperemo degli ultimi due array che sono [3,6] e [2]. Dopo il confronto, l'array che otteniamo sarà [2,3,6].

[1, 4, 5, 7] [2, 3, 6]

Ora abbiamo due array; [1,4,5,7] e [2,3,6]. Chiamiamoli Arraya [1,4,5,7] E ArrayB [2,3,6] rispettivamente.

Prima di tutto, il primo elemento "1" Di Arraya verrà confrontato con il secondo elemento "2" Di arrayb e il numero più piccolo "1"Sarà memorizzato nel nuovo array ordinato

[1]

Nella prossima iterazione, "2"Verrà confrontato con il prossimo elemento"4" Di Arraya. Quello più piccolo "2"Sarà memorizzato nel nuovo array ordinato.

[1,2]

Questa volta, "4" di Arraya verrà paragonato al prossimo elemento "3" di ArrayB. Poiché "3" è più piccolo, quindi verrà inserito nel nuovo array ordinato.

[1,2,3]

Questa procedura verrà eseguita a ciascun elemento di entrambi gli array e una volta confrontato tutti gli elementi, l'array risultante sarà; [1,2,3,3,5,6,7].

[1, 2, 3, 4, 5, 6, 7]

Unisci l'ordinamento in JavaScript

Come abbiamo imparato come funziona Merge Sord ora lo codificheremo in JavaScript.

Crea una funzione ricorsiva per dividere l'array non desiderato, l'abbiamo chiamata "Merge_Sort". La funzione ricorsiva ha sempre un caso di base per fermare il programma. Passiamo l'array non preflitto al "Merge_Sort"Funzione, e all'interno di questa funzione, troviamo l'indice medio dell'array dividendo la lunghezza dell'array per 2. Inoltre, utilizziamo il metodo "Splice ()" per dividere l'array in sotto-array.

Function Merge_Sort (UnsortedArray)
const midle_index = unsortedArray.lunghezza / 2
Se (UnsortedArray.lunghezza < 2)
restituire unesortedarray

const leftarray = UnsortedArray.Splice (0, Midle_index)
Return MergeArray (Merge_Sort (LeftArray), Merge_Sort (UnsortedArray))

Ora discuteremo del codice per unire i due array di divisione. Questi array di divisione sono già ordinati nella funzione "Merge_Sort", e ora li stiamo unendo in "Mergearrays" funzione.

function mergearrays (sinistra, destra)
let ary = []
mentre (LeftArray.Lunghezza && RightArray.lunghezza)
if (LeftArray [0] < rightArray[0])
ary.Push (LeftArray.spostare())
altro
ary.Push (RightArray.spostare())


Restituisci [… Ary, ... LeftArray, ... RightArray]

Nella funzione sopra data "LeftArray" e "RightArray" sono i due array ordinati e li stiamo unendo per ottenere un singolo array ordinato. In questo esempio vengono utilizzati due metodi: il "spingere()"Metodo per aggiungere il valore alla fine dell'array ordinato e"spostare()"Metodo per eliminare il valore selezionato dal sotto-array. Infine, la console.Il metodo log () viene utilizzato per testare l'output.

Lo snippet di codice completo andrebbe così:

function mergearrays (sinistra, destra)
let ary = []
mentre (LeftArray.Lunghezza && RightArray.lunghezza)
if (LeftArray [0] < rightArray[0])
ary.Push (LeftArray.spostare())
altro
ary.Push (RightArray.spostare())


Restituisci [… Ary, ... LeftArray, ... RightArray]

Function Merge_Sort (UnsortedArray)
const midle_index = unsortedArray.lunghezza / 2
Se (UnsortedArray.lunghezza < 2)
restituire unesortedarray

const leftarray = UnsortedArray.Splice (0, Midle_index)
Return Mergearrays (Merge_Sort (LeftArray), Merge_Sort (UnsortedArray))

unrartArray = [5, 7, 1, 4, 6, 3, 2];
console.log (merge_sort (unsortedArray));

Produzione:

Conclusione:

Unisci l'ordinamento divide un elenco in sotto-listi e continua a dividere l'elenco fino a quando un sotto-list non ottiene un singolo elemento, quindi unisce tutti i sotto-listi e produce una nuova lista ordinata. In questo post, abbiamo imparato il concetto di tipo di unione, quindi abbiamo considerato alcuni esempi e, infine, li abbiamo implementati in JavaScript. Abbiamo anche spiegato come funziona il metodo di giunzione, il metodo push e il metodo di spostamento in JavaScript.