si nous avons une liste de nombres dont nous avons besoin bitslog nnJournaln
Non: si nous avons une liste de nombres entre et , nous avons besoin de bits. Il n'y a aucune relation entre et en général.2 k - 1 k k log n02k- 1kkJournaln
Si les nombres sont tous distincts, alors , et le tri radix sur des nombres distincts a donc une complexité temporelle de . En général, la complexité du tri radix est où est le nombre d'éléments à trier et est le nombre de bits dans chaque élément.Ω ( n log n ) Θ ( nJournaln ≥ kΩ ( n logn )n kΘ ( nk )nk
Dire que la complexité du tri radix est signifie prendre une taille de bit fixe pour les nombres. Cela implique que pour suffisamment grand , il y aura de nombreuses valeurs en double.nO(n)n
Il existe un théorème général selon lequel une méthode de tri de tableau ou de liste qui fonctionne en comparant deux éléments à la fois ne peut pas s'exécuter plus rapidement que dans le pire des cas. Le tri Radix ne fonctionne pas en comparant les éléments, mais la même méthode de preuve fonctionne. Le tri Radix est un processus de décision pour déterminer la permutation à appliquer au tableau; il y en apermutations du tableau, et le tri radix prend des décisions binaires, c'est-à-dire qu'il décide d'échanger ou non deux éléments à chaque étape. Après décisions binaires, le tri radix peut décider entre permutations. Pour atteindre lepermutations possibles, il faut que .n ! m 2 m n ! m ≥ log ( n ! ) = Θ ( n log n )Θ(nlogn)n!m2mn!m≥log(n!)=Θ(nlogn)
Une hypothèse dans la preuve que je n'ai pas écrite ci-dessus est que l'algorithme doit fonctionner dans le cas où les éléments sont distincts. Si l'on sait a priori que les éléments ne sont pas tous distincts, alors le nombre de permutations potentielles est inférieur au complet. Lors du tri des nombres à bits, il n'est possible d'avoir éléments distincts que lorsque ; dans ce cas, la complexité du tri radix est en effet . Pour des valeurs plus grandes de , il doit y avoir des collisions, ce qui explique comment le tri radix peut avoir une complexité inférieure à lorsque .k n n ≤ 2 k Ω ( n log n ) n Θ ( n log n ) n > 2 kn!knn≤2kΩ(nlogn)nΘ(nlogn)n>2k