我已经查看了基数排序算法的最佳,平均和最差情况时间。
平均值为N X K / D
我知道N是算法中元素的数量
我知道K是键/桶的数量
有谁知道D代表什么?
我要去维基百科的表格,谢谢
参考 - http://en.wikipedia.org/wiki/Sorting_algorithm#Radix_sort
答案 0 :(得分:3)
D
是基数K
中的位数。
例如,如果您的K = 16,则最大数字为255
,D = 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)。
由于这些因素会影响“基数排序”算法的运行时间,因此对于使用该算法执行排序以使其高效还是有一些注意事项。数据需要: