排序算法——希尔排序

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、介绍:

       希尔排序是一种可以减少插入排序中数据比较次数的排序算法加速算法的进行排序的原则是将数据区分为特定步长的小区块然后以插入排序算法对小区块内部进行排序经历过一轮排序则减少步长直到所有数据都排序完成。

演示

首先步长step的值是用待查找的数据长度决定的初始值为step = 待查找数据的长度/2

视频演示

希尔排序更多实用攻略教学爆笑沙雕集锦你所不知道的游戏知识热门游戏视频7*24小时持续更新,尽在哔哩哔哩bilibili 视频播放量 107、弹幕量 1、点赞数 0、投硬币枚数 0、收藏人数 1、转发人数 0, 视频作者 浅陌95sss, 作者简介 记录自己的学习成果分享自己的快乐相关视频快速排序冒泡排序演示选择排序演示学习记录--循环列表直接插入排序演示学习记录--网络状态机实现学习记录--设计模式之命令模式排行榜模拟学习记录--Rpg雷达图学习记录--BFS寻路算法icon-default.png?t=N7T8https://www.bilibili.com/video/BV1eS4y15761/?spm_id_from=333.999.0.0运行代码

  void ShellSort(int[] data)
  {
      int step = data.Length / 2;
      int preIdx , current = 0;
      while (step > 0)
      {
          for (int i = step; i < data.Length; i++)
          {
              preIdx = i - step;
              current = data[i];

              while (preIdx >= 0 && data[preIdx] > current)
              {
                  data[preIdx + step] = data[preIdx];
                  preIdx -= step;
              }
              data[preIdx + step] = current;
          }
          step = step / 2;
      }
  }
 void ShellSort2(int[] data)
 {
     int step = data.Length / 2;
     int preIdx, current = 0;
     while (step > 0)
     {
         for (int i = 0; i < data.Length - step; i +=step)
         {
             preIdx = i;
             current = data[i + step];

             while (preIdx >= 0 && data[preIdx] > current)
             {
                 data[preIdx + step] = data[preIdx];
                 preIdx -= step;
             }
             data[preIdx + step] = current;
         }
         step = step / 2;
     }
 }

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6