Insertion sort: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Annullata la modifica 131822535 di 217.58.199.70 (discussione)
Etichetta: Annulla
Riga 89:
Il caso pessimo è invece quello in cui la sequenza di partenza sia ordinata al contrario. In questo caso, ogni iterazione dovrà scorrere e spostare ogni elemento della sottosequenza ordinata prima di poter inserire il primo elemento della sottosequenza non ordinata. Pertanto, in questo caso l'algoritmo di insertion sort ha complessità temporale quadratica, ossia <math>\Theta(n^2)</math>.
Anche il caso medio ha complessità quadratica, il che lo rende impraticabile per ordinare sequenze grandi.
Pur avendo complessità elevata, tuttavia, risulta essere l'algoritmo di ordinamento più veloce per array piccoli. Un algoritmo simile all'Insertion Sort ma dalla complessità minore è lo [[Shell sort]]. Anche lo shell sort non è in grado di competere con la combinazione dell'insertion sort con un algoritmo di tipo ''[[divide et impera (informatica)|divide et impera]]'', quale il [[quick sort]] o il [[merge sort]], ossia all'uso dell'algoritmo ''divide et impera'' per ridurre il problema all'ordinamento di sequenze di dimensione inferiore a una certa soglia, che verranno trattate con l'insertion sort(mamt).
 
== Bibliografia ==