#include <iostream.h>
#include <stdlib.h>
#include <string.h>
void radix (int byte, long N, long *source, long *dest)
{
long count[256];
long index[256];
memset (count, 0, sizeof (count));
for ( int i=0; i<N; i++ ) count[((source)>>(byte*8))&0xff]++;
index[0]=0;
for ( i=1; i<256; i++ ) index=index[i-1]+count[i-1];
for(i=0;i<N;i++) dest[index[((source)>>(byte*8))&0xff]++]=source;
}
void radixsort (long *source, long *temp, long N)
{
radix (0, N, source, temp);
radix (1, N, temp, source);
radix (2, N, source, temp);
radix (3, N, temp, source);
}
void make_random (long *data, long N)
{
for ( int i=0; i < N; i++ ) data=rand()|(rand()<<16);
}
long data[10000];
long temp[10000];
void main (void)
{
make_random(data, 10000);
radixsort (data, temp, 10000);
for ( int i=0; i<100; i++ ) cout << data << '\n';
}
Поразрядная LSD сортировка(C++).
Привет! У кого есть реализация на с++ поразрядной LSD сортировки выложите плизз!!! Я вот нашел, но так и непонял что оно и как делает, какой-то получается нобор чисел
Могу только дать источник , где почитать: Роберт Сэджвик. Фундаментальные алгоритмы на С++.Глава 10.Поразрядная сортировка.подглава 10.5.Поразрядная LSD сортировка.стр.425.Качни книгу и разберись;)
Да Седжвик есть, влт токо там есть класс а как к нему main написать непойму