"Descrivi un algoritmo che ordina i numeri in un array."
Un algoritmo di ordinamento è un tipo di algoritmo che prende in input un array di numeri non ordinati e produce in output un array di numeri ordinati in ordine ascendente o discendente. Gli algoritmi di ordinamento comuni includono bubble sort, merge sort, quick sort e selection sort. Bubble sort funziona andando ripetutamente attraverso l'array, confrontando le coppie di elementi e scambiandoli se sono fuori ordine; questo continua finché l'array non è ordinato. Merge sort divide l'array di input in due metà, ordina in modo ricorsivo ciascuna di queste metà e poi le unisce di nuovo insieme; il risultato finale è un array ordinato. Quick sort funziona selezionando un elemento come pivot, quindi suddividendo l'array in sotto-array più piccoli in base alla posizione dell'elemento rispetto al pivot; i sotto-array vengono quindi ordinati e uniti in modo ricorsivo. Infine, selection sort funziona selezionando l'elemento più piccolo nell'array, scambiandolo con l'elemento nella prima posizione, selezionando il prossimo elemento più piccolo e scambiandolo con l'elemento nella seconda posizione e continuando finché l'array non è ordinato.