Vantaggi e svantaggi di Bubble Sort

August 16

I programmatori che passano da PC e sviluppo web in codifica per i dispositivi mobili o sistemi embedded trovano che più tempo viene speso selezione e codifica le proprie strutture di dati e algoritmi. Con meno memoria e la memorizzazione dei dati limitati, non c'è spazio per le librerie o quadri pre-costruiti. Quindi, per chi ha bisogno di scrivere le proprie routine di ordinamento, qui ci sono alcune considerazioni su come scegliere gli umili bubble sort.

sfondo

Il bubble sort è un semplice algoritmo che ordina un elenco di elementi in memoria. Dato un array, il codice confronta ripetutamente ogni coppia di elementi adiacenti e scambia se non sono in ordine. Il processo si ripete fino a quando non si verificano più swap. Se fosse possibile visualizzare la matrice mentre il genere è in corso, i bassi valori avrebbe "bolla" all'inizio mentre i grandi valori potrebbero depositarsi sul fondo. Ecco il codice corrispondente in Visual Basic 2010:

Mentre swap = true

swap = False

Per i = 0 Per tbl.length - 2

If tbl(i) > tbl(i + 1) Then

tmp = tbl (i)

tbl (i) = tbl (i + 1)

tbl (i + 1) = tmp

swap = true

Finisci se

Il prossimo

End While

Quando scegliere il Bubble Sort

Questo algoritmo ha diversi vantaggi. E 'semplice da scrivere, facile da capire e richiede solo poche righe di codice. I dati vengono ordinati in atto in modo c'è poco overhead di memoria e, una volta ordinati, i dati sono in memoria, pronti per l'elaborazione. Il principale svantaggio è la quantità di tempo necessario per ordinare. Il tempo medio aumenta quasi esponenziale del numero di elementi della tabella aumentano. Dieci volte il numero di elementi prende quasi un centinaio di volte più a lungo per ordinare.

Altri tipi di array

Algoritmi di ordinamento variano in complessità, la velocità e l'overhead. Il bubble sort è il meno complesso ma anche uno dei più lenti. Altri tipi di array-based come il tipo di inserimento e lo scambio genere sono un po 'più veloce, ma prendono più il codice (vedi i riferimenti di seguito). Il vantaggio principale di sorta basate su array sono che utilizzano il codice minimo e prendono la quantità minima di memoria di lavoro. Prendere in considerazione questi tipi di semplici array con meno di qualche centinaio di articoli.

Ordina algoritmi complessi

set di dati più grandi richiedono codice più complesso e più memoria. L'ordinamento rapido e heap sort sia dividere e copiare gli insiemi di dati per ottimizzare il numero di confronti. Il quick sort divide costantemente l'elenco poi ricompone in modo ordinato. Le copie mucchio ordinare i dati in una struttura ad albero poi attraversa l'albero per copiare i dati di nuovo in ordine. Entrambi sono veloce ed efficiente, ma prendono più codice e lo stoccaggio molto più lavoro. Scegliere questi algoritmi per grandi insiemi di dati.