* Caso migliore: O (n log n)
* Ciò si verifica quando il perno scelto ad ogni passaggio divide l'array in metà approssimativamente uguale. Questo porta a un albero di ricorsione equilibrato.
* Caso medio: O (n log n)
* In media, QuickSort funziona molto bene. La selezione dei perni non deve essere perfetta per ottenere prestazioni quasi ottimali.
* Caso peggiore: O (n^2)
* Questo accade quando il perno è costantemente l'elemento più piccolo o più grande nell'array. Questo porta a un albero di ricorsione altamente sbilanciato in cui un sottoproblema ha la taglia 0 e l'altro ha la taglia N-1. In sostanza, si degrada a prestazioni simili all'ordinamento di selezione o alla bolle. Uno scenario comune è quando l'array di input è già ordinato o quasi ordinato.
Note importanti
* QuickSort randomizzato: Una variazione di QuickSort che seleziona casualmente il perno riduce significativamente la probabilità di incontrare lo scenario peggiore. QuickSort randomizzato ha una complessità temporale media e prevista di O (n log n).
* Ordinamento nel posto: QuickSort è un algoritmo di smistamento sul posto (richiede una memoria extra minima, di solito O (log n) per lo stack di ricorsione).
* Performance pratiche: Nonostante la possibilità di un caso peggiore (n^2), QuickSort è spesso molto efficiente nella pratica e viene spesso utilizzato nelle funzioni di smistamento della libreria standard. I suoi vantaggi includono la sua natura sul posto e i fattori costanti relativamente piccoli.
* Confronto con l'ordinamento di unione: L'ordinamento di unione ha una complessità temporale O (n log n) garantita in tutti i casi, ma non è sul posto (richiede spazio ausiliario O (n)). Pertanto, QuickSort è spesso preferito quando lo spazio è una delle principali preoccupazioni e i dati dovrebbero essere ragionevolmente ben distribuiti.
In sintesi:
| Caso | Complessità temporale |
| ------------- | ----------------- |
| Migliore | O (n log n) |
| Media | O (n log n) |
| Peggiore | O (n^2) |
software © www.354353.com