C#希尔排序中文教程-初学者必学

Chinar blog www.chinar.xin

Unity UGUI 完整系列教程 (Chinar中文图解)

C#排序算法之希尔排序


本文提供全流程,中文翻译。

助力快速掌握希尔排序

使有限时间 具备无限可能

Chinar —— 心分享、心创新!

我们的初衷是将一种简单的生活方式带给世人

为初学者节省宝贵的时间,避免采坑!

Chinar 教程效果:

在这里插入图片描述



全文高清图片,点击即可放大观看 (很多人竟然不知道)


1

Intro —— 简介


百度百科:希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort)

百度百科:希尔排序

是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名

也就是说希尔排序是一种特殊的插入排序

请大家先了解一下插入排序,这样有助于理解希尔排序:插入排序


2

Realize —— 实现


希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序

随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个数列恰被分成一组,算法便终止

请大家先看代码,难点会在代码后面列出

static void ShellSort(int[] data)
{
    int index;
    int len = data.Length;
    int perIndex = data.Length/2;
    while (perIndex>0)
    {
        for (int i = perIndex; i < len; i++)
        {
            index = i - perIndex;
            int temp = data[i];
            while (index >= 0 && data[index] > temp)
            {
                data[index + perIndex] = data[index];
                index -= perIndex;
            }
                data[index + perIndex] = temp;
        }
                perIndex /= 2;
   }
}

Chinar 总结:对于新手来讲,希尔排序会有哪几个难点:

  • 增量的意义:表示当前数与间隔增量个数的数作比较,一般默认为数列长度的1/2
  • 增量每次缩减一半的意义:相当于将数列分组,对每组进行插入排序,直到每组数据个数为1,这时排序完成

C#排序算法学习汇总(Chinar中文图解)

至此:您已完美征服了 希尔排序


支持

May Be —— 开发者,总有一天要做的事!


拥有自己的服务器,无需再找攻略

Chinar 提供一站式《零》基础教程

使有限时间 具备无限可能!

先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


Chinar 免费服务器、建站教程全攻略!( Chinar Blog )


Chinar

END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值