Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 计数排序范围是否始终需要在[0,k]中?_Sorting_Counting - Fatal编程技术网

Sorting 计数排序范围是否始终需要在[0,k]中?

Sorting 计数排序范围是否始终需要在[0,k]中?,sorting,counting,Sorting,Counting,我可以对一个小范围的数字进行计数排序吗?比如,从一个巨大的数字池中,a=[7,9,12,15],我知道这个数字池只包含小数组中的数字?或者小范围总是必须是[0..k] 我可以通过说[0..15]对数组A进行计数排序,但这没有意义。 如果A=[100750452] 所以我想这是可行的。 我想听听你的意见。你的问题不是很清楚,但还是来了。在您的示例A=[7,9,12,15]中,范围为[0..15],需要大小为k=15的加法空间(以及另一个[length]的结果数组)。因为n(A[length])是4

我可以对一个小范围的数字进行计数排序吗?比如,从一个巨大的数字池中,a=[7,9,12,15],我知道这个数字池只包含小数组中的数字?或者小范围总是必须是[0..k]

我可以通过说[0..15]对数组A进行计数排序,但这没有意义。 如果A=[100750452]

所以我想这是可行的。
我想听听你的意见。

你的问题不是很清楚,但还是来了。在您的示例A=[7,9,12,15]中,范围为[0..15],需要大小为k=15的加法空间(以及另一个[length]的结果数组)。因为n(A[length])是4,所以整个运行时将是θ(k+n)。计数排序是一种“时空权衡”algo,但如果在您的案例中使用,则没有任何意义。因为,没有任何折衷。当k=Big-O(n)时,应使用计数排序,这意味着您的A[]中的最大值小于A[]的大小。顺便说一句,我相信该算法仍能正确排序示例