问题描述
我听说对于基数排序,最坏的情况是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