Concetti Chiave
- Gli algoritmi di ordinamento ottimizzano le performance CPU riducendo i tempi di elaborazione fino al 30%.
- Esistono diverse categorie di algoritmi di ordinamento, principalmente iterativi e ricorsivi, ognuno con caratteristiche specifiche di stabilità e funzionamento.
- Il Bubble Sort è un algoritmo iterativo, stabile e in loco, che ordina con una complessità di O(n^2) facendo "galleggiare" il maggiore elemento alla fine.
- L'Insertion Sort effettua un confronto crescente, spostando elementi ordinati a sinistra, ed è pure stabile e in loco con complessità O(n^2).
- Il Selection Sort ricerca e sposta l'elemento minimo nella prima posizione non ordinata; è in loco ma non stabile, con complessità O(n^2).
Algoritmi di ordinamento
In ambito informatico notevole importanza viene ricoperta dagli algoritmi di ordinamento; difatti un buon algoritmo di ordinamento permette di ridurre i tempi di lavorazione della CPU (Central Processing Unit) anche del 30% con notevoli benefici per quanto riguarda le performance.
Esistono diverse tipologie di algoritmi, tra tutti i più importanti sono quelli iterativi e quelli ricorsivi; ogni algoritmo a sua volta possiede delle caratteristiche di stabilità e funzionamento in loco dipendente dal ragionamento utilizzato per l’algoritmo.
Tra gli algoritmi iterativi più comuni vi sono il bubble sort, l’insertion sort, il selection sort.
- Bubble Sort: consiste in una sorta di galleggiamento dell’elemento maggiore fino all’ultima casella non ordinata del vettore scorrendo gli elementi non ordinati (in modo da controllare quale di loro sia il maggiore); algoritmo in loco e stabile di complessità O(n^2);
- Insertion Sort: consiste in un controllo crescente sul vettore confrontando di volta in volta il primo elemento non ordinato con quelli precedenti (ordinati) spostando gli elementi nella parte sinistra (ordinata); algoritmo in loco e stabile di complessità O(n^2);
- Selection Sort: consiste nella ricerca, fino a vettore ordinato, dell’elemento minimo e nello spostarlo nella prima cella non ordinata; algoritmo in loco non stabile di complessità O(n^2).