Ordinamento A Bolle Javascript

| | | |

Come scrivere un ordinamento a bolle JavaScript

Hai un elenco di valori che devi ordinare? L’ordinamento delle bolle potrebbe fare al caso tuo. Gli ordinamenti a bolle confrontano gli elementi adiacenti in un elenco e scambiano le loro posizioni se non sono nell’ordine corretto.

In questa guida, parleremo di cosa sono gli ordinamenti a bolle e come funzionano. Vedremo come scrivere un Bubble Sort in JavaScript in modo da poter iniziare rapidamente con questo ordinamento.

Cominciamo!

Che cos’è un Bubble Sort JavaScript?

Un bubble sort, o un "sinking sort," è un semplice algoritmo di ordinamento che confronta una coppia di elementi adiacenti in un elenco. Se un elemento non è nell’ordine corretto, scambiamo l’elemento con quello precedente. Altrimenti, l’elemento rimane nello stesso posto.

Il bubble sort ha preso il nome perché scorre un elenco e sposta tutti i valori più grandi alla fine. Un altro modo di pensare a questo è che i valori più grandi "bubble up" alla fine della lista. Gli ordinamenti a bolle funzionano sia in ordine crescente che in ordine decrescente.

Esistono due tipi di ordinamenti a bolle: regolari e ottimizzati.

Gli ordinamenti a bolle regolari effettuano tutti i confronti possibili indipendentemente dal fatto che un array sia ordinato . I bubble sort ottimizzati smettono di essere eseguiti al termine di un’iterazione se non si è verificato alcuno scambio.

Procedura JavaScript di Bubble Sort

Inizieremo parlando di come funzionano i bubble sort, e poi implementarne uno in JavaScript. Considera il seguente elenco di elementi:

93211

Per iniziare il nostro ordinamento, confronteremo il primo e il secondo numero. Se il primo numero è maggiore del secondo numero, scambiamo gli elementi. In caso contrario, gli elementi rimarranno nella stessa posizione.

9 è maggiore di 3 quindi le posizioni dei primi due elementi si scambiano:

39122

Questo processo continua finché non confrontiamo tutti gli elementi nell’elenco.

9 non è maggiore di 12, quindi questi elementi rimangono nello stesso posto. 12 è maggiore di 2, quindi questi elementi si scambiano:

39 212

Il nostro elenco sta iniziando per sembrare più ordinato. Il nostro algoritmo ha ripetuto l’elenco una volta. Continuerà a farlo finché non ordiniamo ogni articolo. Nella prossima iterazione, il nostro programma effettua i seguenti confronti:

Dopo questa iterazione, la nostra lista si presenta cosi:

32912

Ci siamo quasi. Nella prossima iterazione scambiamo i primi due elementi, il che ci dà un elenco completamente ordinato:

Ce l’abbiamo fatta! Abbiamo ordinato un elenco utilizzando un ordinamento a bolle. Ora arriva la parte difficile: implementare questo algoritmo in JavaScript.

Come scrivere un ordinamento a bolle in JavaScript

Possiamo scrivere un algoritmo di ordinamento a bolle in JavaScript. Creeremo due tipi di bolle: un normale ordinamento e uno ottimizzato.

Ordinamento regolare di bolle

Iniziamo definendo un Funzione JavaScript che esegue il nostro bubble sort:

Questa funzione accetta un array di numeri e lo ordina utilizzando l’algoritmo di ordinamento a bolle. Per iniziare, l’algoritmo crea un ciclo for che scorre ogni elemento nell’elenco.

Il nostro codice utilizza l’attributo della lunghezza dell’array per calcolare la lunghezza dell’elenco. Quindi, dichiariamo un altro ciclo for. Questo ciclo for effettua confronti tra ogni elemento dell’elenco.

For ogni iterazione del nostro ciclo interno, il nostro programma esegue un’istruzione if.Questa istruzione if JavaScript verifica se il numero a sinistra di un confronto è maggiore del numero a destra. Se lo è, il nostro programma scambia i numeri. Altrimenti non succede nulla.

Restituiamo l’array al programma principale dopo averlo ordinato. Chiamiamo la nostra funzione e diamogli un esempio array:

Abbiamo dichiarato un JavaSc ript variabile chiamata numbersToSort che contiene i numeri che vogliamo ordinare. Abbiamo quindi chiamato il nostro metodo sortItems() e passato questa variabile come parametro. Questo ordina la nostra lista. Stampiamo l’elenco appena ordinato nella console JavaScript del browser: [2, 3, 9, 11].

Questo codice ordina il nostro elenco in ordine crescente. Possiamo modificare questo comportamento sostituendo il valore "maggiore di" accedi al nostro "se" dichiarazione con un "minore di" sign:

Abbiamo quasi finito! Rendiamo il nostro codice più efficiente implementando un ordinamento a bolle con una variabile scambiata.

Ordinamento a bolle ottimizzato

L’ordinamento a bolle ottimizzato introduce una nuova variabile. Questa variabile tiene traccia di se si verifica uno scambio. L’ordinamento si fermerà se non si sono verificati scambi.

Per rendere il nostro bubble sort più efficiente, sostituiremo il nostro ciclo for esterno con un ciclo while:

Il ciclo while verrà eseguito finché "scambiato" è uguale a falso. Per impostazione predefinita, il valore di "scambiato" è vero. In ogni iterazione del nostro elenco, impostiamo il valore di "swapped" falso. Se si verifica uno scambio, il valore di "scambiato" ritorna vero.

Questo ci consente di tenere traccia se è stato effettuato uno scambio in un’iterazione. Se non è stato effettuato alcuno scambio, significa che il nostro elenco è ordinato. In questo caso, possiamo interrompere il nostro ordinamento a bolle .

Proviamo a utilizzare questo ordinamento a bolle:

Il nostro codice restituisce: [2, 3, 9, 11]. elenco viene ordinato. Questo algoritmo è più efficiente perché non esegue confronti non necessari. Non appena l’elenco viene ordinato, l’algoritmo smette di funzionare.

Conclusione

Gli ordinamenti a bolle sono un modo semplice per ordinare un elenco. Confronta gli elementi adiacenti in un elenco e li scambiano se non sono nell’ordine corretto.

Sono disponibili ordinamenti più efficienti come l’ordinamento per inserimento o un ordinamento di unione. Questi tipi sono più avanzati. Gli ordinamenti a bolle sono in genere il modo migliore per iniziare a conoscere gli algoritmi di ordinamento.

Per ulteriori informazioni sulla codifica in JavaScript, leggi il nostro Come imparare Guida JavaScript.

Ordinamento A Bolle Javascript insert: Questions

Ordinamento A Bolle Javascript JavaScript: Questions

Shop

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Best laptop for Minecraft

$590

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method