排序算法——希尔排序

一、介绍:

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

演示:

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

视频演示:

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

cs 复制代码
  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;
      }
  }
cs 复制代码
 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;
     }
 }
相关推荐
8Qi83 分钟前
LeetCode 75:颜色分类(荷兰国旗问题)—— Java 题解 ✅
java·算法·leetcode·指针·排序
888CC++2 小时前
如何在 C 语言中进行程序调试?
前端·javascript·算法
(●—●)橘子……3 小时前
力扣第503场周赛练习理解
python·学习·算法·leetcode·职场和发展·周赛
明志数科5 小时前
4D时序标注技术详解:让机器人理解连续动作的数据基础
java·算法·机器人
KaMeidebaby5 小时前
卡梅德生物技术快报|原核表达系统工艺优化:包涵体重折叠 + 分子筛纯化实现功能 RBD 高效制备,附全参数配置
前端·人工智能·算法·数据挖掘·数据分析
无限码力5 小时前
携程0510笔试真题【单数组交换】
算法·携程笔试·携程笔试真题·携程0510笔试真题
BlockWay6 小时前
WEEX Labs 周度观察:微软-OpenAI 合作调整与AI 多云趋势
大数据·人工智能·算法·安全·microsoft
风筝在晴天搁浅6 小时前
快手 CodeTop LeetCode 224.基本计算器
数据结构·算法·leetcode
Smoothcloud润云6 小时前
5大功能精修,重构AI算力使用体验!
java·人工智能·windows·算法·重构·编辑器·sublime text