ORDINAMENTO
Résumé de section
-
Lezione 33: 16/12/25
- Introduzione al problema dell'ordinamento. Definizione di algoritmo basato su confronti. Design Pattern Divide and Conquer.
- MergeSort: MergeSort (pseudocodice); Merge (pseudocodice); complessità di Merge; complessità di MergeSort.
- QuickSort: strategia generale; QuickSortInPlace (pseudocodice).
Lezione 34: 17/12/25- QuickSort: Partition (pseudocodice, correttezza, complessità); complessità di QuickSortInPlace tramite Albero della Ricorsione.
- Randomized QuickSort: differenze rispetto a QuickSortInPlace.
- Complessità probabilistica di Randomized QuickSort (alta probabilità e media).
- InsertionSort: algoritmo in place; definizione di inversione; analisi in funzione della taglia dell'input e del numero di inversioni.
Lezione 35: 18/12/25- Lower bound sulla complessità di un qualsiasi algoritmo di ordinamento basato su confronti (senza prova).
- BucketSort: pseudocodice e analisi di complessità.
- Nozione di ordinamento stabile.
- RadixSort: algoritmo; analisi di complessità e di correttezza.
- Caso di studio: ordinamento dei cittadini italiani per codice fiscale.
Lezione 36: 23/12/25
- Dimostrazione del lower bound sulla complessità di un qualsiasi algoritmo di ordinamento basato su confronti
- Esercizi: ordinamento di n chiavi in [0,n^2-1] (Slide 86 e C-13.39 di [GTG14]); algoritmo CountIntersection per l' intersezione di 2 sequenze ordinate (primo esercizio di Slide 21); ordinamento di una sequenza di n bit (primo esercizio di Slide 43); calcolo del numero di inversioni tramite MergeSort (secondo esercizio di Slide 21)
Materiale:
- Slide sull'Ordinamento (v. 05/01/26)
- Slide di Esercizi sull'Ordinamento (v. 23/12/25)
- Esercizi svolti sull'Ordinamento (v. 30/12/25)
- Libro di testo [GTG14]: Par. 9.4.1 e Ch. 13 (Par. 1, 2, 3, 4)
- Esercizi consigliati dal libro di testo: R-13.1; R-13.2; R-13.3; R-13.6; R-13.8; R-13.9; C-13.29; C-13.32; C-13.33; C-13.34; C-13.35; C-13.36; C-13.37; C-13.38; C-13.39; C-13.40; C-13.42; C-13.45; C-13.46; C-13.48.