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

问题描述

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

解决方法

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

begin end