Che cos'è l'ordinamento di array?
L'ordinamento degli array è il processo di prendere i singoli elementi di un array e disporli in un qualche tipo di ordine logico secondo una serie di regole definite dall'utente. Il processo prevede il passaggio attraverso l'array, un elemento alla volta, e il test di tale elemento rispetto agli elementi circostanti per determinare se è necessario spostarlo in un altro indice all'interno dell'array. Quando si esegue l'ordinamento di array, ci sono diversi algoritmi che possono essere utilizzati, specialmente quando le condizioni di ordinamento sono numeriche rispetto a qualcosa di più arbitrario. La maggior parte degli algoritmi di ordinamento degli array sono misurati in base alla loro velocità ed efficienza, con gli algoritmi più lenti che sono i più facili da programmare e il più veloce è molto più complesso.
L'algoritmo di ordinamento degli array più semplice si chiama ordinamento a bolle ed è anche il più lento. Il processo inizia con un ciclo che attraverserà ogni elemento dell'array. L'elemento corrente viene confrontato con l'elemento successivo nella matrice e, se l'elemento successivo ha un valore inferiore rispetto all'elemento corrente, i dati negli indici vengono commutati. Lo svantaggio di un ordinamento a bolle è che deve scorrere più volte l'array per effettuare tutti gli swap necessari per ordinare l'array. Nelle implementazioni più elementari, l'ordinamento eseguirà il ciclo dell'intero array una volta completa per ogni elemento che contiene.
Un ordinamento di selezione utilizza un algoritmo che esegue l'ordinamento di array in modo leggermente più efficiente di un ordinamento a bolle ma richiede ancora più iterazioni attraverso l'array. Questo ordinamento inizia eseguendo un ciclo nell'array per trovare l'elemento con il valore più basso. Questo elemento viene quindi inserito nel primo indice dell'array e alcune variabili di tracciamento vengono incrementate. Il ciclo quindi si ripete, cercando ora il valore più basso successivo che verrà quindi inserito nel secondo indice dell'array. Il processo continua fino a quando l'elemento di valore più elevato viene inserito nell'ultimo indice dell'array.
Un metodo di ordinamento di array che può essere efficiente ma a volte complesso da implementare è noto come quicksort. Il Quicksorting implica l'acquisizione di un valore nel mezzo di tutti i possibili valori contenuti nell'array. L'algoritmo attraversa tutti gli elementi dell'array e mette tutti i valori maggiori del numero mediano alla fine dell'array e valori più bassi all'inizio. Questo processo viene eseguito in modo ricorsivo su blocchi dell'array fino alla fine dell'intero array viene ordinato. Supponendo che il valore medio utilizzato per l'array sia abbastanza preciso, questo può essere un modo molto veloce per ordinare.
Un fattore che può influenzare un algoritmo di ordinamento di array è il mezzo con cui i dati vengono testati per l'equivalenza. I numeri semplici sono facili da confrontare per quale valore è maggiore, ma ciò potrebbe non essere il caso di classi di dati complesse in cui è necessario confrontare più condizioni. Più tempo ci vorrà per confrontare se un elemento è maggiore o minore di un altro, più tempo impiegherà l'algoritmo per ordinare l'array.