【发布时间】:2012-03-09 05:19:39
【问题描述】:
我有一个队列和一个队列数组。 buckets 是数组,collector 是队列。 pass 是一个整数,它保存了它的传递。我有一个方法可以返回队列的第一个单元格的包含,称为peek()。 shiftOne() 是一种将一个队列的头部移动到另一个队列尾部的方法。
现在这段代码对我不起作用
bucket[((collector.peek()>>(pass * 8)) &0xFF)].shiftOne(collector);
我一步一步地走了,结果我没有正确地掩盖这些位。我可以改变它们,但仅此而已。所以我将尝试访问元素 102 以获得 10 元素数组。我究竟做错了什么?我知道peek() 和shiftOne(),因为我可以使用幂和模数进行排序。
【问题讨论】:
-
8和0xFF与使用 radix-256 排序一致,在这种情况下,您的数组应该是 256 个元素(访问元素 102 就可以了)
标签: c++ data-structures radix-sort