排序算法——希尔排序

来源:互联网 发布:淘宝pu女包 编辑:程序博客网 时间:2024/05/20 22:36

1、基本思想:

希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。因此,我们要采用跳跃分割的策略:将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序。希尔排序是对直接插入排序算法的优化和升级。
所谓的基本有序,就是小的关键字基本在前面,大的基本在后面,不大不小的基本在中间,例如{2,1,3,6,4,7,5,8,9,}就可以称为基本有序了。但像{1,5,9,3,7,8,2,4,6}这样,9在第三位,2在倒数第三位就谈不上基本有序。

2、复杂度分析:

希尔排序的关键并不是随便分组后各自排序,而是将相隔某个“增量”的记录组成一个子序列,实现跳跃式移动,使得排序的效率提高。需要注意的是,增量序列的最后一个增量值必须等于1才行。另外,由于记录是跳跃式的移动,希尔排序并不是一种稳定的排序算法
希尔排序最好时间复杂度和平均时间复杂度都是这里写图片描述,最坏时间复杂度为这里写图片描述

3、排序过程如下:

以数组{26, 53, 67, 48, 57, 13, 48, 32, 60, 50 }为例,步长序列为{5,2,1}
初始化关键字: [26, 53, 67, 48, 57, 13, 48, 32, 60, 50 ]
这里写图片描述

最后的排序结果:
13 26 32 48 48 50 53 57 60 67

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 写人的句子 写人作文800 写人叙事 写人好句 写人记叙文 写人外貌 写人日记 写人成语 写人作文200 写人作文700 写人的日记 写人的成语 写人的词语 写人作文100 写人词语 写人片段 写人500字 写人的 写人的美文 写人散文 作文写人的 写人的作 写人的散文 写人作文400字 写人作文600字 写人作文600字初中 写人作文300字 写人作文500字 写人记事作文 写人叙事作文 写人作文初中 三年级写人作文 写人记事的作文 写人作文评语 写人好词好句 写人记事作文600字 写人的好词好句 写人作文800字 写人叙事作文600字 写人作文200字 写人记事作文600