2015-11-18 2 views
0

Si l'on suppose que les éléments sont uniformément répartis dans une plage donnée k, nous avons 10 godets. Ensuite, la quantité d'éléments dans chaque compartiment sera la même après une itération sur les n éléments de la liste. Ensuite, par exemple, nous utilisons quicksort pour trier chacun des buckets, mais nous savons que le nombre d'éléments dans chaque bucket est constant, donc le temps de fonctionnement total ne sera-t-il pas Θ (n)?Temps de fonctionnement du tri par godet

+2

Est-ce que ce sont les devoirs? Quelles sont vos idées pour aborder la question? – reto

+0

@reto Non, je me prépare pour un examen en introduction aux algorithmes, et beaucoup de sources donnent des informations différentes concernant la durée de fonctionnement. – Petter

+3

Si vous avez 10 buckets et n éléments, le nombre d'éléments dans chaque bucket est n/10, ce qui n'est pas une constante. – whrow

Répondre

1

No.

Puting les éléments en 10 seaux est O (N).

Le tri d'un segment avec qsort est O (NlogN) (N/10 actuellement mais les constantes n'ont pas d'importance pour la complexité). Donc, la complexité globale va être O (N + 10 * N logN) qui est O (NlogN) (parce que N < NlogN et constantes, 10, peu importe). Si cela est trop difficile à comprendre, essayez ceci: S'il y avait 2 compartiments au lieu de 10, alors vous faites exactement Qsort pour la liste entière.