我羽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日

悬赏问题

  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法