У меня есть очередь и массив массивов. buckets
- это массив, а collector
- очередь. pass
- целое число, которое сохраняет, кто проходит. У меня есть метод, который возвращает мне содержимое первой ячейки очереди, которая называется peek()
. shiftOne()
- метод, который перемещает голову одной очереди в хвост другой.Radix Sort C++ Не маскирующие биты
Сейчас этот код не работает для меня
bucket[((collector.peek()>>(pass * 8)) &0xFF)].shiftOne(collector);
Я пошел шаг за шагом, и это получится, я не маскировать биты правильно. Я могу их переместить, но это все. Поэтому я попытаюсь получить доступ к элементу 102 для массива из 10 элементов. Что я делаю не так? Я знаю peek()
и shiftOne()
, потому что могу сортировать с использованием мощностей и модуля.
«8» и «0xFF» согласны с использованием сортировки radix-256, и в этом случае ваши массивы должны быть 256 элементов (и доступ к элементу 102 просто хорош) –