我有一个队列和一个队列数组。 buckets
是数组,而collector
是队列。 pass
是一个整数,用于保存它传递的值。我有一个方法返回给我的队列中第一个单元格的名称为peek()
。 shiftOne()
是一种将一个队列的头部移动到另一个队列的尾部的方法。基数排序C++不屏蔽位
现在这个代码不为我工作
bucket[((collector.peek()>>(pass * 8)) &0xFF)].shiftOne(collector);
我已经一步一步,它变成我没有正确屏蔽位。我可以转移他们,但这是关于它。所以我会尝试访问元素102的10元素数组。我究竟做错了什么?我知道peek()
和shiftOne()
,因为我可以使用权力和模数进行排序。
'8'和'0xFF'使用基数-256排序,在这种情况下,你的数组应该是256个元素(访问元素102就好) – 2012-03-10 01:49:00