Esattamente.
Hai letto la descrizione del counting sort?
Ha complessità O(n+m) dove n è il numero di dati in input e m l'ampiezza del range. Ovvero cresce linearmente su uno dei due.
L'algoritmo proposto nell'ultimo post ha complessità O(n^2), ovvero cresce quadraticamente sul numero di dati in input.
Quale è meglio? Dipende dal numero di dati in input, dalla memoria disponibile e dal range.
n=65536 è il limite in cui si incontrano le curve su un intero a 32 bit, ma è improbabile userai sempre tutto il range di interi.
Prendiamo ad esempio i numeri da 0 a 10000, basta n=100 a far incontrare le curve, un input di 100 numeri è meno che improbabile.


Rispondi quotando
