Я пытаюсь использовать свой алгоритм сортировки подсчета для реализации алгоритма сортировки по основанию (подсчет уже работает с отрицательными числами).
void counting_sortrdx(int *vet, int mmax, int min, int n, int dig){
int i,j, C[10],B[n];
for (i=0;i<10;i++){
C[i]=0;
}
for (i=0;i<n;i++){
C[((vet[i]-min)/dig)%10]++;
}
for (i=1;i<10;i++){
C[i]=C[i]+C[i-1];
}
for (i=n-1;i>=0;i--){
B[C[((vet[i]-min)/dig)%10]-1]=vet[i];
C[((vet[i]-min)/dig)%10]--;
}
for (i=0;i<tam;i++){
vet[i]=B[i];
}
}
void radix_sort(int *vet, int max, int min, int n){
int dig, i;
for (dig = 1; max/dig > 0; dig=dig*10){
counting_sortrdx(vet, max, min, n, dig);
}
for (i=0;i<n;i++){
printf("%d ",vet[i]);
}
}