计算排序最差,最佳和平均时间复杂度为O(n+k)
,其中n是要排序的元素数。 究竟是什么? 我看到了不同的定义:最大元素,最大元素和最小元素之间的差异,依此类推。
arr1 [1, 3, 5, 9, 12, 7 ]
和arr2 [1,2,3,2,1,2,4,1,3,2]
k
和arr1
的{{1}}是什么?arr2
排序是真的,这是真的吗?
arr1
(元素值来自比数量更宽的范围
要排序的元素?答案 0 :(得分:2)
k
是键的范围,即覆盖所有可能值所需的数组槽数。因此,如果是数字,Max-Min+1
。当然,这假设您不会通过分配Min
第一个广告位和Max
广告位而浪费空间。
当k
不超过n
的小倍数时,使用计数排序是合适的,让n.k
,因为在这种情况下,n.k
可以击败n.log n
1}}。
答案 1 :(得分:2)
k是数组中的最大可能值,假设您有长度为5的数组,每个数字是0到9之间的整数,在本例中k等于9
答案 2 :(得分:0)
首先将k计数数组归零。然后读取数组中的n个元素,并且根据n个元素的值递增k个计数的元素。在计数排序的输出通道上,读取k个计数的数组,并写入n个元素的数组。因此有k次写入(计数为零),n次读取,然后k次读取和n次写入总共2n + 2k次操作,但是大O忽略常量2,因此时间复杂度为O(n + k)。