Concetti Chiave
- Merge Sort utilizza una tecnica ricorsiva per dividere un vettore in due parti, ordinando e riunendo gli elementi in modo stabile con complessità O(n log(n)).
- Quick Sort si basa su un pivot per ordinare un vettore, scambiando elementi fino a che gli indici non si scavalcano, con una complessità media di O(n^2).
- Merge Sort è un algoritmo di ordinamento stabile e non in loco, il che significa che non utilizza spazio aggiuntivo per l'ordinamento.
- Quick Sort è un algoritmo di ordinamento in loco e non stabile, il che implica che può modificare l'ordine degli elementi con lo stesso valore.
- Entrambi gli algoritmi sono fondamentali nella letteratura informatica per la loro efficienza nel gestire problemi di ordinamento complessi.
Alcuni degli algoritmi più efficienti e semplici fanno utilizzo della tecnica ricorsiva per ridurre la complessità dell’algoritmo stesso.
Tra questi due tra i più importanti in letteratura sono l’algoritmo Merge Sort e l’algoritmo Quick Sort.
- Merge Sort: il suo funzionamento consiste nel dividere ricorsivamente il vettore in due parti, sinistra e destra, fino a raggiungere dei vettori di dimensione unitaria per poi riunire in post order ordinando i sotto-vettori (visivamente si forma un albero di ricorsione del vettore da ordinare); algoritmo di ordinamento stabile non in loco di complessità O(n log(n));
- Quick Sort: consiste nell’ordinamento del vettore basandosi su un pivot scelto secondo un metodo deciso in partenza (il primo elemento, l’ultimo o uno qualsiasi tra gli altri); tramite due indici si scorre quindi il vettore e si cercano a sinistra il primo elemento maggiore del pivot e a destra il primo elemento minore del pivot scambiandoli ogni volta che vengono trovati entrambi e continuando così finchè i due indici non si scavalcano, a quel punto si scambia l’elemento con indice l’indice che in partenza era sulla sinistra con il pivot; si ricorre quindi sui due sotto-vettori destro e sinistro in base al pivot, esso stesso escluso dai sottovettori, si ripete quindi il procedimento fino a dimensione unitaria dei sottovettori; algoritmo di ordinamento in loco non stabile di complessita O(n^2).
Qual è la descrizione di Merge Sort?
Descrizione di Quick Sort
Domande da interrogazione
- Qual è la principale differenza tra Merge Sort e Quick Sort?
- Come funziona l'algoritmo Merge Sort?
- Qual è il ruolo del pivot nell'algoritmo Quick Sort?
La principale differenza risiede nel metodo di ordinamento: Merge Sort è un algoritmo stabile e non in loco con complessità O(n log(n)), mentre Quick Sort è un algoritmo in loco e non stabile con complessità O(n^2) (come descritto nel testo).
Merge Sort funziona dividendo ricorsivamente il vettore in due parti fino a ottenere vettori di dimensione unitaria, per poi riunirli ordinando i sotto-vettori, formando un albero di ricorsione (come spiegato nel testo).
Nel Quick Sort, il pivot è un elemento scelto che guida il processo di ordinamento; il vettore viene suddiviso in base a questo elemento, scambiando gli elementi fino a che gli indici non si scavalcano, e il procedimento si ripete sui sotto-vettori (come indicato nel testo).