Radix Sort реализована в C ++

Я пытаюсь улучшить свой C ++, создав программу, которая будет принимать большое количество чисел от 1 до 10 ^ 6. Группы, в которых будут храниться числа в каждом проходе, представляют собой массив узлов (где узел - это созданная мной структура, содержащая значение и атрибут следующего узла).

После сортировки чисел по сегментам по наименее значимому значению у меня есть конец одной точки, указывающий на начало другой группы (чтобы я мог быстро получить сохраняемые числа без нарушения порядка). Мой код не содержит ошибок (ни компиляции, ни времени выполнения), но яМы врезались в стену относительно того, как я собираюсь решить оставшиеся 6 итераций (так как я знаю диапазон чисел).

Проблема в том, что яСуть в том, что первоначально числа были переданы функции radixSort в виде массива int. После первой итерации сортировки числа теперь сохраняются в массиве структур. Есть ли способ, которым я мог бы переделать свой код так, чтобы у меня был только один цикл for для 7 итераций, или мне понадобится один цикл for, который будет выполняться один раз, и еще один цикл под ним, который будет выполняться 6 раз перед возвратом полностью отсортированного список?

#include 
#include 
using namespace std;

struct node
{
    int value;
    node *next; 
};

//The 10 buckets to store the intermediary results of every sort
node *bucket[10];
//This serves as the array of pointers to the front of every linked list
node *ptr[10];
//This serves as the array of pointer to the end of every linked list
node *end[10];
node *linkedpointer;
node *item;
node *temp;

void append(int value, int n)
{
    node *temp; 
    item=new node;
    item->value=value;
    item->next=NULL;
    end[n]=item;
    if(bucket[n]->next==NULL)
    {
        cout < "Bucket " < n < " is empty" 

Ответы на вопрос(3)

Ваш ответ на вопрос