[Algoritmi] Ordinamento lista

peppe89ct
Io dovrei ordinare una lista di n numeri che fanno parte di un range da 1 a 1000.
Secondo voi è ordinato, efficientemente, con un counting sort o con un bucket sort?Per me è bucket sort perchè gli elementi sono distribuiti in un range,però ho molti dubbi(perchè non lo so se sono distribuiti uniformente).Secondo voi?

Risposte
vict85
Stai usando lista per intendere un array oppure parli proprio di una lista? Perché in quest'ultimo caso dubito si possa ordinare usando il counting sort, senza distruggere la lista e ricrearla intendo. Riguardo al bucket non ho compreso perché ritieni sia in vantaggio, è infatti il bucket sort che ha il vantaggio maggiore dall'avere gli elementi distribuiti uniformemente. Il counting sort è assolutamente indipendente dalla distribuzione degli elementi: ci mette sempre lo stesso numero di operazioni.

peppe89ct
"vict85":
Stai usando lista per intendere un array oppure parli proprio di una lista? Perché in quest'ultimo caso dubito si possa ordinare usando il counting sort, senza distruggere la lista e ricrearla intendo. Riguardo al bucket non ho compreso perché ritieni sia in vantaggio, è infatti il bucket sort che ha il vantaggio maggiore dall'avere gli elementi distribuiti uniformemente. Il counting sort è assolutamente indipendente dalla distribuzione degli elementi: ci mette sempre lo stesso numero di operazioni.

La lista era per intendere un array...e poi se k(l'elemento che dovrebbe essere mille) NON è dello stesso ordine di n(quindi n <= 1000) allora non posso sapere se è più efficiente il bucket o il counting....che conferma mi potresti dare?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.