Pierre Terdiman 在他的文章“Radix Sort Revisited”中告诉我们:
例如,您需要 4 次通过才能对标准 32 位整数进行排序,因为在十六进制中,基数是一个字节。
但是 0xAB 有两个基数,即 A 和 B,都是 4 位宽。
那么,十六进制的基数是什么?因为看不懂文章。
Pierre Terdiman 在他的文章“Radix Sort Revisited”中告诉我们:
例如,您需要 4 次通过才能对标准 32 位整数进行排序,因为在十六进制中,基数是一个字节。
但是 0xAB 有两个基数,即 A 和 B,都是 4 位宽。
那么,十六进制的基数是什么?因为看不懂文章。
据我了解,这0xAB
只是基数的一个例子。当接近基数排序时,使用字节更容易(不需要移位 -C/C++
无论如何只需要转换, in )。
这句话的最后一部分在这里很重要:
因为在十六进制中,基数是一个字节
说了这么多,前面说什么都无所谓了……
只是为了加强论证,检查他的例子 -SortedBuffer
初始化使用字节作为基数(256*sizeof(int)
),而不是半字节:
memset(SortedBuffer, -1, 256*sizeof(int)); // Fill with –1
(再次,根据我在这篇文章中的理解......)