Почему этот radixSort не работает

Похоже, что все в порядке. Но результат говорит о другом. На самом деле, я не знаю, что с ним не так. Может быть, это потому, что я написал это в 2 часа ночи …

РЕДАКТИРОВАТЬ:

template <class T>
void radixSort(T & arr, msize numberBase)
{
long maxValue = findMax(arr);
dynarray<long> tarr(arr,arr.size());
dynarray<long> presenceTable(numberBase+1);
for (register long i=0, max=presenceTable.size(); i<max; ++i)
{
presenceTable[i] = 0;
}
for (register long exp=1; maxValue/exp>0; exp*=numberBase)
{
for (register long i=0, max=tarr.size(); i<max; ++i)
{
++(presenceTable[(tarr[i]/exp)%numberBase]);
}
for (register long i=1, max=presenceTable.size(); i<max; ++i)
{
presenceTable[i] += presenceTable[i-1];
}
for (register long i=0, max=tarr.size(); i<max; ++i)
{
arr[  (--(presenceTable[(tarr[i]/exp)%numberBase]))  ] = tarr[i];
}
tarr = arr;
for (register long i=0, max=presenceTable.size(); i<max; ++i)
{
presenceTable[i] = 0;
}
}
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]