Un algoritmo di ordinamento è un tipo di algoritmo che accetta come input un array di numeri non ordinati e produce come output un array di numeri ordinati in ordine crescente o decrescente. Gli algoritmi di ordinamento comuni includono il bubble sort, il merge sort, il quick sort e il selection sort. Bubble sort funziona esaminando ripetutamente l'array, confrontando coppie di elementi e scambiandoli se non sono in ordine; questo continua fino a quando l'array non viene ordinato. Merge sort divide l'array di input in due metà, ordina in modo ricorsivo ciascuna di queste metà e quindi le unisce di nuovo insieme; il risultato finale è un array ordinato. L'ordinamento rapido funziona selezionando un elemento come pivot, quindi partizionando l'array in sottoarray più piccoli in base alla posizione dell'elemento rispetto al pivot; i sottoarray vengono quindi ordinati in modo ricorsivo e uniti. Infine, l'ordinamento per selezione funziona selezionando l'elemento più piccolo nell'array, scambiandolo con l'elemento nella prima posizione, selezionando l'elemento successivo più piccolo e scambiandolo con l'elemento nella seconda posizione, e continuando finché l'array non viene ordinato.
Descrivi un algoritmo che ordina i numeri in un array.