A questo scopo esistono numerosi metodi, o algoritmi. Si distinguono per la lunghezza del codice, scritto in un linguaggio informatico (Python, Fortran, C++, Basic…), ma soprattutto per le prestazioni. Il tempo necessario per eseguire un ordinamento è infatti molto importante: se per ordinare cento dati occorrono già dieci minuti, con un numero maggiore di dati diventa difficile! Un parametro, chiamato complessità temporale, misura il numero di operazioni elementari eseguite per ordinare i dati; fornisce quindi una stima del tempo di esecuzione dell’algoritmo. Si considerano la complessità media (calcolata su tutti i dati) e quella nel caso peggiore (calcolata nel caso più sfavorevole). Se n è la quantità di dati, le complessità degli algoritmi usuali sono dell’ordine di n2 (con la notazione di Landau si scrive che è O(n2)), o, meglio ancora, dell’ordine di n log n (ossia O(n log n)). Naturalmente, questo non fornisce la durata esatta, ma indica per esempio che, moltiplicando per 100 il numero di dati, nel primo caso il tempo di calcolo viene moltiplicato per 10 000 e nel secondo per 200. Non è certo l’unico criterio, ma dà di che riflettere nella scelta del metodo!
Ordinare righe e colonne
--------------------------------
L’uso di un foglio di calcolo porta a porsi divertenti domande sulle disuguaglianze. Quando si dispone di una tabella contenente più valori, si può ordinare ciascuna colonna (ricorrendo eventualmente a una macroistruzione, o «macro», nel caso di una tabella molto grande). Si può poi ordinare ciascuna riga. Ma questo ordinamento delle righe non rischia di alterare quello delle colonne? Per fortuna, la risposta è no!