希尔排序算法(改)
Posted 路之编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序算法(改)相关的知识,希望对你有一定的参考价值。
“大家好,今天我们来学习希尔排序的算法。学了前两节的直接插入排序和折半插入排序的算法,相信大家对排序都有了一个新的认识,认识到我们大学里所学的排序与小学所学的排序还是有一定的差距的。这个是显然的。不知道前两节的学习内容大家完成的怎么样呢?我们又要开启新的排序算法旅程喽!加油!”
希尔(Shell)排序又称缩小增量排序方法,其基本思想是:把元素按下标的一定增量d分组,对每组元素采用直接插入排序的方法进行排序,然后随着增量的逐渐减小,所分成的组包含的元素越来越多,到d值减小到1时,整个数据合为一组,构成一组有序元素,则完成排序。
void ShellSort(SqList R[],int n)
{
int i,j,d;
SqList tmp;
d=n/2;
while(d>0)
{
for(i=d;i<n;i++)
{
tmp=R[i];
j=i-d;
while(j>=0&&tmp.key<R[j].key)
{
R[j+d]=R[j];
j=j-d;
}
R[j+d]=tmp;
}
d=d/2;
}
}
呀哈,转眼间就把插入类的排序都讲完了呢!还挺快的哈!那么大家有什么问题随时扫描下方二维码,随时与我交流哦!坚持就是最棒哒!剧透一下,下节我们讲选择类的排序,加油吧,骚年!
以上是关于希尔排序算法(改)的主要内容,如果未能解决你的问题,请参考以下文章
《算法》笔记 3 - 选择排序插入排序希尔排序
希尔排序图解与代码
算法-java代码实现希尔排序
希尔排序的介绍和希尔排序基本思想以及代码实现
排序算法——希尔排序的图解代码实现以及时间复杂度分析
排序算法之希尔排序