1. Cos'è il Merge Sort?
Il Merge Sort è un efficiente algoritmo di ordinamento basato sul paradigma del Divide et Impera (dividi et impera). L'idea fondamentale consiste nel suddividere ricorsivamente il vettore non ordinato in sotto-vettori più piccoli fino a raggiungere sotto-strutture di dimensione unitaria (già ordinate per definizione), per poi procedere alla loro fusione (merge) ordinata ricomponendo la struttura globale.
2. Meccanismo di Funzionamento e Codice C++
L'algoritmo si compone di due funzioni principali: una funzione ricorsiva di divisione (`mergeSort`) e una funzione di supporto per la fusione (`merge`) che unisce due sotto-array ordinati in un unico vettore coerente.
3. Analisi della Complessità
- Complessità Temporale $\mathcal{O}(N \log N)$ (Tutti i casi): Grazie alla suddivisione binaria ricorsiva e alla fase di fusione lineare, il Merge Sort garantisce prestazioni eccellenti anche nel caso peggiore, superando nettamente gli algoritmi elementari quadratici.
- Complessità Spaziale $\mathcal{O}(N)$: Richiede memoria di supporto aggiuntiva per allocare i sotto-vettori temporanei durante le operazioni di fusione.
4. Simulatore Interattivo: Esecuzione Merge Sort
Inserisci una sequenza di numeri interi separati da virgola per testare l'ordinamento tramite Merge Sort e verificare le metriche di esecuzione.