Re[2]: Самый бысрый алгоритм сортировки чисел 0-255
От: WolfHound  
Дата: 24.01.05 14:36
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Во-третьих, это алгоритм подсчета, сколько раз данное число встречается в mass (после исправления). При чем здесь сортировка — не понимаю.

Ну эта... короче это глюкавая часть банального алгоритма сортировки подсчетом.
Если доделать его до конца то будет примерно так(не компилировал)
void counter_sort(unsigned char* arr, int count)
{
    int counters[256];
    for(int i=0; i<256; ++i)
        counters[i] = 0;
    for(int i=0; i<count; ++i)
        ++counters[arr[i]];
    for(int i=0, j=0; i<count; ++i)
    {
        while(counters[j] == 0)
        {
            ++j;
            if(j == 256)
                return;
        }
        arr[i] = j;
        --counters[j];
    }
}

Ну както так...
Есть вариации этого алгоритма для других тапов данных. Искать по словам radix sort
google : Результаты 1 — 10 из примерно 279 000 для radix sort.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.