Differenza tra ordinamento a bolle e ordinamento di inserimento

Ordina Bubble vs Ordina Sort

Bubble sort è un algoritmo di ordinamento che opera scorrendo l'elenco per essere ordinato ripetutamente durante il confronto di coppie di elementi adiacenti. Se una coppia di elementi è nell'ordine sbagliato, vengono scambiati per inserirli nell'ordine corretto. Questa traversata viene ripetuta finché non sono richiesti ulteriori scambi. L'ordinamento di inserimento è anche un algoritmo di ordinamento, che opera inserendo un elemento nell'elenco di input nella posizione corretta in un elenco già ordinato. Questo processo viene applicato ripetutamente finché l'elenco non viene ordinato.

Che cos'è Bubble Sort?

Bubble sort è un algoritmo di ordinamento che opera scorrendo l'elenco per essere ordinato ripetutamente durante il confronto di coppie di elementi adiacenti. Se una coppia di elementi è nell'ordine sbagliato, vengono scambiati per inserirli nell'ordine corretto. Questa traversata viene ripetuta finché non sono richiesti ulteriori scambi (il che significa che l'elenco è ordinato). Poiché gli elementi più piccoli nella lista arrivano in cima quando una bolla viene in superficie, viene assegnato il nome bubble sort. Bubble sort è un algoritmo di ordinamento molto semplice ma ha una complessità nel tempo di caso medio di O (n2) quando si ordina una lista con n elementi. A causa di ciò, l'ordinamento di bolle non è adatto per ordinare gli elenchi con un numero elevato di elementi. Ma a causa della sua semplicità, il bubble sort viene insegnato durante le introduzioni agli algoritmi.

Cos'è l'ordinamento di inserzione?

Insertion sort è un altro algoritmo di ordinamento, che opera inserendo un elemento nell'elenco di input nella posizione corretta in un elenco (che è già ordinato). Questo processo viene applicato ripetutamente finché l'elenco non viene ordinato. In ordine di inserimento, l'ordinamento viene effettuato sul posto. Pertanto, dopo l'iterazione dell'algoritmo, le prime voci di i + 1 nell'elenco verranno ordinate e il resto dell'elenco verrà annullato. Ad ogni iterazione, il primo elemento nella parte non ordinata della lista sarà preso e inserito nella posizione corretta nella sezione ordinata della lista. L'ordinamento di inserzione ha una complessità temporale di caso medio di O (n2). A causa di ciò, l'ordinamento di inserimento non è adatto per l'ordinamento di elenchi di grandi dimensioni.

Qual è la differenza tra Bubble Sort e Insertion Sort?

Sebbene sia gli algoritmi di ordinamento delle bolle che di ordinamento di inserzione presentano complessità di tempo medio di caso di O (n2), l'ordinamento di bolle è quasi sempre sovraperformato dall'ordinamento di inserimento. Ciò è dovuto al numero di swap necessari per i due algoritmi (i tipi di bolle richiedono più swap). Ma a causa della semplicità di bubble sort, la sua dimensione del codice è molto piccola. Esiste anche una variante di ordinamento per inserzione chiamata sort di shell, che ha una complessità temporale di O (n3 / 2), che consentirebbe di essere utilizzata praticamente. Inoltre, l'ordinamento di inserimento è molto efficiente per l'ordinamento di elenchi "quasi ordinati", confrontati con l'ordinamento di bolle.