WWF_666 2021-08-13 22:47 采纳率: 33.3%
浏览 15
已结题

基数排序b[bucket[d]-1]=a[i];当这位数出现次数为0时-1不会出现问题吗?

void RadixSort(int a[],int n){
    int max=0;//求数组中的最大值 
    for(int i=0;i<n;i++) max=a[i]>max?a[i]:max;
    for(int digit=1;max/digit>0;digit*=10){//从个位开始按位排序 
        int b[n];//存放一趟排序后结果的临时数组 
        int bucket[10]={0};//初始化10个桶 
        for(int i=0;i<n;i++){
            bucket[a[i]/digit%10]++;//统计数据出现次数 
        }
        for(int i=1;i<10;i++){
            bucket[i]+=bucket[i-1];//调整bucket各元素的值,调整后的值就是a中元素在b中的位置
        } 
        for(int i=n-1;i>=0;i--){//将a中的元素填充到b中(从后往前排,先入后出)
            int d=a[i]/digit%10;
            b[bucket[d]-1]=a[i];
            bucket[d]--;
        }
        memcpy(a,b,n*sizeof(int));//排序好的数组b复制回a 
    }
}

  • 写回答

2条回答 默认 最新

  • WWF_666 2021-08-13 22:48
    关注

    当求余后为0的数组元素为0,-1为什么不会出错

    评论

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 创建了问题 8月13日

悬赏问题

  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错