Just do it130 2021-10-12 22:55 采纳率: 93.3%
浏览 16
已结题

希尔排序能运行但是没有结果

img


代码哪里有问题,能运行,但是没有结果,输出是空的

  • 写回答

1条回答 默认 最新

  • 神仙别闹 2021-10-13 01:27
    关注

    希尔排序是插入排序的一种优化,其思想为将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序......最后选择增量为1,即使用直接插入排序,使最终数组成为有序。增量的选择上比较普遍是一半一半递减选取,10个数字无序序列,增量是len/2,然后不断缩短,最后一次增量为1.

    void ShellSort()
    {
        int gap = len/ 2;//初始增量为数组长度的一半
        while (1 <= gap) 
        {
            for (int i = gap; i < len ; i++) 
            {
                int j = 0;
                int temp = iRawBuff[i];
                for (j = i - gap; j >= 0 && temp < iRawBuff[j]; j = j - gap)
                {
                    iRawBuff[j + gap] = iRawBuff[j];
                }
                iRawBuff[j + gap] = temp;
            }
            gap = gap / 2; 增量为上次的二分之一
        }
        for (int k = 0; k < len; k++)
        {
            cout << iRawBuff[k] << "   ";
        }
        cout << endl;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月27日
  • 已采纳回答 10月19日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序