Radix sort pseudocode
radixSort(List aList) {
create an array of queues - Queue[] qs = new Queue[10];
initialize each Queue (! better than 10 null ptrs!)
for each digit, d (from smallest to largest significance, i.e. 1, then 10, etc) {
for each element, e of aList{
qs[value at d].enqueue(e);
}
clear aList
for each queue from 0-9 {
while (!queue[i].isEmpty()) {
aList.add(queue[i].dequeue());
} // while
} // for each q
} // for each digit
} // radixSort
A question: Is this easier to understand as:
radixSort(List aList) {
create an array of queues - Queue[] qs = new Queue[10];
initialize each Queue (! better than 10 null ptrs!)
for each digit, d (from smallest to largest significance, i.e. 1, then 10, etc) {
listToQueues()
clear aList
queuesToList()
} // for each digit
} // radixSort
listToQueues() {
for each element, e of aList{
qs[value at d].enqueue(e);
}
}
queuesToList() {
for each queue from 0-9 {
while (!queue[i].isEmpty()) {
aList.add(queue[i].dequeue());
} // while
} // for each q
}