Algoritmi di ordinamento -> Quick sort
Come può suggerire la parola, il quick sort è un algoritmo di ordinamento efficiente. Fu sviluppato nel 1959 da Tony Hoare, presenta una complessità di O(n log n) ed è normalmente l'algoritmo scelto per l'implementazione del sorting nelle librerie di molti linguaggi. Quick sort, analogamente a merge sort, adotta un approccio Divide et Impera (anche se la parte Divide è più complessa, mentre quella Impera è più semplice). A differenza del merge sort, il quick sort opera in loco, ma non è stabile rispetto all'ordinamento (anche se nel nostro caso base di semplice ordinamento di un vettore di interi non ci importerà)
Concettualmente il abbiamo due operazioni:
Nella figura è possibile osservare in funzionamento dell'algoritmo
Codice
Una possibile implementazione del quick sort è quella che segue. Come al solito sono presenti alcuni commenti accanto alle parti più importanti
Nota: quicksort in C è implementato nella libreria standard di C/C++ ->
Come può suggerire la parola, il quick sort è un algoritmo di ordinamento efficiente. Fu sviluppato nel 1959 da Tony Hoare, presenta una complessità di O(n log n) ed è normalmente l'algoritmo scelto per l'implementazione del sorting nelle librerie di molti linguaggi. Quick sort, analogamente a merge sort, adotta un approccio Divide et Impera (anche se la parte Divide è più complessa, mentre quella Impera è più semplice). A differenza del merge sort, il quick sort opera in loco, ma non è stabile rispetto all'ordinamento (anche se nel nostro caso base di semplice ordinamento di un vettore di interi non ci importerà)
Concettualmente il abbiamo due operazioni:
- Scelta di un elemento detto pivot dall'array
- Partizione, cioè operazione con la quale gli elementi minori del pivot vengono spostati in posizione a sinistra e quelli maggiori alla sua destra (perciò il pivot si trova nella sua posizione finale)
Nella figura è possibile osservare in funzionamento dell'algoritmo

Codice
Una possibile implementazione del quick sort è quella che segue. Come al solito sono presenti alcuni commenti accanto alle parti più importanti
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Nota: quicksort in C è implementato nella libreria standard di C/C++ ->
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
Ultima modifica: