Вроде из википедии вырвал такой кусочек:
Код
void bucket_sort(int a[], int n){
int *buckets,i,k;
buckets = malloc(sizeof(int) * n);
for (i = 0; i < n - 1; i++){
buckets[msbits(a[i],k)]=a[i];
//вставить A[i] в конец массива buckets[msbits(A[i], k)]
}
for (i = 0; i < n - 1; i++){
bucket_sort(buckets[i],n);
}
//Конкатенация массивов buckets[0], ..., buckets[n-1]
}
Дополнил чем смог, но все же знаний не хватает...
Что подключить чтобы работала msbits или как она выглядит для реализации своими ручками. (копи-паст)
Что за аргумент k в агрументах этой функции, откуда его нужно взять?
На сколько ведер делить каждый массив, хватит ли 2-х или нужно как-то мудрить с этим?
Как в итоге должна выглядеть конкатенация, тоже не допераю?