È ordinamento per selezione di un algoritmo efficiente?
Domanda
So che è un quadratric algoritmo in tempo, ma come si rapporta con gli altri algoritmi di ordinamento, come QuickSort o di Ordinamento a Bolle?
Soluzione
Algoritmi di ordinamento generalmente variano in base alla natura dei dati da lei.
Tuttavia, mentre il bubble sort e ordinamento di selezione sono facili da capire (e attuare) algoritmi di ordinamento il loro tempo di esecuzione è O(n^2) io.e il momento peggiore che si può eventualmente ottenere.
Per quanto quick sort è interessato, un avergage richiede O(n log n) tempo quindi è un ottimo sorta.Tuttavia, si può anche prendere in O(n ^ 2) in alcuni casi.
Altri suggerimenti
algoritmi tempo quadratico, a seconda delle dimensioni del vostro set di dati, possono essere incredibilmente lento.
n = 10e78 (circa il numero di atomi nell'universo)
Per un algoritmo quadratico, che è n * (10e78). Per un algoritmo nlog (n), come quicksort mergesort o, che è n * 262. Questa è una differenza enorme.
Ma se il vostro set di dati è relativamente piccolo (<1000 articoli, dicono), quindi la differenza di prestazioni probabilmente non sta per essere evidente (a meno che, forse, il genere è stato fatto più volte). In questi casi di solito è meglio usare l'algoritmo più semplice, e ottimizzare in seguito, se si scopre di essere troppo lento.
"ottimizzazione prematura è la radice di tutti i mali". -Sir Tony Hoare, reso popolare da Donald Knuth
Wikipedia conosce tutti.
Selezione succhia specie più o meno.
Se i dati che avete composto da soli numeri interi positivi si consiglia di guardare bucket sort. L'algoritmo può avere un tempo di esecuzione O lineare (n) nelle giuste condizioni.