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 用于基数排序算法的基数大小在实践中是否重要?_Sorting_Memory_Radix Sort - Fatal编程技术网

Sorting 用于基数排序算法的基数大小在实践中是否重要?

Sorting 用于基数排序算法的基数大小在实践中是否重要?,sorting,memory,radix-sort,Sorting,Memory,Radix Sort,我听说基数排序的最坏情况是O(n+r),其中n是数组大小,r是基数。但是,由于在计算中很少使用比基数16更多的东西,实际上r=2还是r=100真的很重要吗?对空间有实际影响吗?应该是最坏情况下的空间O(n+r logr(range)),其中range是要排序的值的范围。例如,对于64位整数范围=2^64,如果对64位整数执行基数排序基256,则log256(2^64)=8,这是所需的基数排序传递数。最糟糕的情况是使用所有过程的矩阵,例如8 x 256矩阵对64位无符号整数进行排序,基256:ma

我听说基数排序的最坏情况是O(n+r),其中n是数组大小,r是基数。但是,由于在计算中很少使用比基数16更多的东西,实际上r=2还是r=100真的很重要吗?对空间有实际影响吗?

应该是最坏情况下的空间O(n+r logr(range)),其中range是要排序的值的范围。例如,对于64位整数范围=2^64,如果对64位整数执行基数排序基256,则log256(2^64)=8,这是所需的基数排序传递数。最糟糕的情况是使用所有过程的矩阵,例如8 x 256矩阵对64位无符号整数进行排序,基256:matrix[8][256]。最坏情况下的空间开销是用于基数排序的临时数组的大小=n个元素加上矩阵的大小。对于以256为基数排序的64位整数示例:

n + r · ceil(log256(2^64)) = n + 256 · 8.

不知道为什么你会说“在计算中很少使用超过16进制的东西”。这与此有什么关系?在数字上,使用的基数很少超过16。我相信它可以是255对于ASCII,从。这本质上不是意味着它没有实际的影响吗?因为考虑到基数排序的最佳使用情况,我想说8x8x256肯定也会非常有用negligible@pintert3-如果使用基数65536(2^26),则索引计数存储在4×65536×8或4×65536×4矩阵中,这比基数256占用更多的空间。