c - 如何使用我的计数排序代码实现基数排序以处理负数
问题描述
我正在尝试使用我的计数排序算法来实现基数排序算法。(计数已经适用于负数)。
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]);
}
}
解决方案
推荐阅读
- c - 我在下面所做的编码的“性别”部分应该有什么变化?
- javascript - 从子组件更新状态并返回组件
- django - Django - 无法访问管理员登录页面
- java - Android Studio:带或文本的分隔线
- vhdl - 将双向记录分配给另一个记录的可重用方法
- django - Django urls 处理带有斜线的 slug,例如 /main/subpage
- python - 如何从段列表中返回最大的 x 坐标和最大的 y 坐标?
- javascript - 每次使用 API 调用限制更改状态时如何重新渲染?
- mapbox - 如何在 npm 中使用 mapbox-gl-csp.js 文件?
- javascript - 如何仅在移动网格上使用 vue-awesome-swiper 组件