È un noto problema con Quicksort che quando il set di dati è inserito o quasi nell'ordine, le prestazioni si riducono in modo orribile. In questo caso, Insertion Sort, che è normalmente molto lento, è facilmente la scelta migliore. La domanda è sapere quando usare quale.Algoritmo di analisi pre-ordinamento?
Esiste un algoritmo disponibile per eseguire un set di dati, applicare un fattore di confronto e restituire un rapporto sul livello di chiusura del set di dati in ordine di classificazione? Preferisco Delphi/Pascal, ma posso leggere altre lingue se l'esempio non è eccessivamente complesso.
Questa lentezza di quicksort con sequenze pre-ordinate è solo un problema, AFAIK, se l'implementazione è troppo semplice rispetto alla scelta di un elemento di pivot. Vedi http://www.cprogramming.com/tutorial/computersciencetheory/quicksort.html per esempio. – Dirk