我羽564 2022-03-30 11:57 采纳率: 100%
浏览 32
已结题

一个关于计数排序的问题

我在网上看到这样一个计数排序的例子
int main()
{
// 待排序数组
int nums[5] = {3, 1, 2, 0, 3};
// 用于排序数组
int newNums[4] = {0};
// 计算待排序数组长度
int len = sizeof(nums) / sizeof(nums[0]);
// 遍历待排序数组
for(int i = 0; i < len; i++){
// 取出待排序数组当前值
int index = nums[i];
// 将待排序数组当前值作为排序数组索引
// 将用于排序数组对应索引原有值+1
newNums[index] = newNums[index] +1;
}

// 计算待排序数组长度
int len2 = sizeof(newNums) / sizeof(newNums[0]);
// 输出排序数组索引, 就是排序之后结果
for(int i = 0; i < len2; i++){
    for(int j = 0; j < newNums[i]; j++){
        printf("%i\n", i);
    }
}
/*
// 计算待排序数组长度
int len2 = sizeof(newNums) / sizeof(newNums[0]);
// 还原排序结果到待排序数组
for(int i = 0; i < len2; i++){
    int index = 0;
    **for(int i = 0; i < len; i++)**{
        for(int j = 0; j < newNums[i]; j++){
            nums[index++] = i;
        }
    }
}
*/
return 0;

}

在倒数第八行四个**之间的代码,我发现删了也没什么影响,想问问这条代码有什么意义吗?
补充:是删掉四个星号中间的for循环,发现结果没什么影响,换数组也是正确的。星号是我加的,方便人看到的,不是代码本身有的。

  • 写回答

2条回答 默认 最新

  • 赵4老师 2022-03-30 13:25
    关注

    本来就是注释掉的代码

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 3月31日
  • 修改了问题 3月30日
  • 创建了问题 3月30日

悬赏问题

  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统