基数排序n x(k / d)的解释

时间:2013-03-12 17:50:41

标签: algorithm sorting radix

我已经查看了基数排序算法的最佳,平均和最差情况时间。

平均值为N X K / D

我知道N是算法中元素的数量

我知道K是键/桶的数量

有谁知道D代表什么?

我要去维基百科的表格,谢谢

参考 - http://en.wikipedia.org/wiki/Sorting_algorithm#Radix_sort

2 个答案:

答案 0 :(得分:3)

D是基数K中的位数。

例如,如果您的K = 16,则最大数字为255D = 2 (16 ^ 2 = 256)。如果您将K更改为4,则D将变为4 (4 ^ 4 = 256)

答案 1 :(得分:1)

“基数排序”的运行时间通常简化为O(n),但是有几个因素会导致该运行时间急剧增加。

分配变量:

n =要排序的元素数/ n

L =元素的长度,也就是每个元素中的位数

k =每个元素中数字的范围(数字范围从1到k)

基数排序算法对每个元素中的每个数字执行存储桶排序。 因此,必须完成L个排序,每个排序都需要O(n + k)时间,因为它是将n个元素划分为k个存储桶的存储桶。因此,基数排序的更准确运行时间为O(L(n + k))。

当数字的范围k是一个小常数(如十进制数)时,那么Radix Sort的运行时间可以简化为O(Ln)。

由于这些因素会影响“基数排序”算法的运行时间,因此对于使用该算法执行排序以使其高效还是有一些注意事项。数据需要:

  1. 具有固定的长度(可以选择填充元素以为所有元素创建统一的长度)
  2. 元素的长度L在n中是线性的
  3. 具有k的数字范围,在n中是线性的