gaspare.pappalardo1
Ominide
1 min. di lettura
Vota 4 / 5

Concetti Chiave

  • Algoritmi ricorsivi come Merge Sort e Quick Sort utilizzano la ricorsione per migliorare l'efficienza nell'ordinamento.
  • Merge Sort divide il vettore in parti sinistra e destra, ordina e riunisce i sotto-vettori, risultando in un algoritmo stabile con complessità O(n log(n)).
  • Quick Sort sceglie un pivot e ordina il vettore spostando elementi rispetto al pivot, con una complessità media di O(n log(n)) e massima di O(n^2).
  • Merge Sort è un algoritmo non in loco, mentre Quick Sort è un algoritmo in loco ma non stabile.
  • Entrambi gli algoritmi formano una struttura ad albero attraverso la suddivisione ricorsiva dei vettori.

Algoritmi ricorsivi per l'ordinamento

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).

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community