ci sono tantissimi algoritmi per ordinare... alcuni più efficienti di altri. la funzione standard di java utilizza (giustamente) quicksort, che è il più veloce in assoluto. (O(n logn) operazioni, mentre l'algoritmo insertion sort qui sopra nel caso medio compie O(n^2) operazioni, (dove n è il numero di elementi da ordinare. quindi se ci sono 1000 elementi da ordinare le operazioni saranno circa 1.000.000, mentre usando quicksort (o mergesort o heapsort) sarebbero solo circa 9.965,784!! è chiara la differenza?
altrimenti si possono usare algoritmi di ordinamento lienari (tipo radix sort o counting sort) che ordinano un array in tempo lineare (O(n)) ma hanno dei vincoli implementativi.
cerca su wikipedia... sono centinaia!
|