当前位置:首页 » 操作系统 » shell排序算法

shell排序算法

发布时间: 2022-09-04 05:20:54

Ⅰ 希尔排序算法

希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。

希尔排序基本思想

基本思想:

先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。

详细资料:http://bk..com/view/178698.htm

Ⅱ 排序算法有哪些

1.插入排序—直接插入排序(Straight
Insertion
Sort)
2.
插入排序—希尔排序(Shell`s
Sort)
3.
选择排序—简单选择排序(Simple
Selection
Sort)
4.
选择排序—堆排序(Heap
Sort)
5.
交换排序—冒泡排序(Bubble
Sort)
6.
交换排序—快速排序(Quick
Sort)
7.
归并排序(Merge
Sort)
8.
桶排序/基数排序(Radix
Sort)

Ⅲ 希尔排序的详解

希尔排序基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。

举例说明:

对于这样一个无序的数组5932611817410,想把它变成顺序递增的数组1234567891011。先隔3个元素取一次:把5284取了出来,往后搓一位,把96110取出来,再往后搓一位,又把3117取出来。分别对这三个小组排序成为递增的序列,再插回去,如图:

于是得到了第一趟排序的结果:2134675911810.现在再以2为间隔重复以上步骤(这次得到的是两个小组)得到了2134576811910。最后再以1为间隔再搞一次(实际上这一步就是从左到右两两比较,调整位置),就得到了想要的结果。

这就是希尔排序,其要义就是先进行宏观调整,再进行微观调整。

Ⅳ 请问shell排序用的地方多么

希尔排序
基本思想:将整个无序序列分割成若干小的子序列分别进行插入排序或冒泡排序。
序列分割方法:将相隔某个增量h的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序或冒泡排序,排序就完成。增量序列一般采用:d1=n div 2 ,di=di-1 div 2 ;i=2,3,4.....其中n为待排序序列的长度。

你说数据结构,那大概就是信息学一类的吧。
那么可以很明确的告诉你,希尔排序用的并不多,甚至可以说是几乎不用。因为它的效率比快排低一些(主要是这个增量不好选择),并且不是稳定的,尽管它由于直接选择或插入排序,但是与更高级的排序算法(比方说堆排)还是有一定差距的。

Ⅳ shell排序法是怎么实现

希尔Shell排序是一种插入排序算法,它出自D.L.Shell,因此而得名。Shell排序又称作缩小增量排序。

先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<;…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。

该方法实质上是一种分组插入方法。

算法分析

增量序列的选择

Shell排序的执行时间依赖于增量序列。

好的增量序列的共同特征:

① 最后一个增量必须为1;

② 应该尽量避免序列中的值(尤其是相邻的值)互为倍数的情况。

有人通过大量的实验,给出了目前较好的结果:当n较大时,比较和移动的次数约在n到1.6n之间。

Shell排序的时间性能优于直接插入排序

希尔排序的时间性能优于直接插入排序的原因:

①当文件初态基本有序时直接插入排序所需的比较和移动次数均较少。

②当n值较小时,n和n^2的差别也较小,即直接插入排序的最好时间复杂度O(n)和最坏时间复杂度0(n^2)差别不大。

③在希尔排序开始时增量较大,分组较多,每组的记录数目少,故各组内直接插入较快,后来增量di逐渐缩小,分组数逐渐减少,而各组的记录数目逐渐增多,但由于已经按di-1作为距离排过序,使文件较接近于有序状态,所以新的一趟排序过程也较快。

因此,希尔排序在效率上较直接插人排序有较大的改进。

稳定性

希尔排序是不稳定的。参见上述实例,该例中两个相同关键字49在排序前后的相对次序发生了变化。

算法讨论

Shell排序算法的时间复杂度分析比较复杂,实际所需的时间取决于各次排序时增量的个数和增量的取值。研究证明,若增量的取值比较合理,Shell排序算法的时间复杂度约为O(n(ldn)2)。由于Shell排序算法是按增量分组进行的排序,所以Shell排序算法是一种不稳定的排序算法。

算法步骤

Step1 将n个元素个数列分为5个小组,在每个小组内按直接插入法排序;

step2 在第i步,分组个数取 di+1 =(di +1)/2 {9,5,3,2,1};相临两组之间的对应元素进行比较,如果ai>aj,则交换它们的位置;

Step3 当dK = 1的循环过程完成后,排序过程结束。

(详细请查看网络相关条目。)

Ⅵ Shell排序的算法步骤

Step1 将n个元素个数列分为5个小组,在每个小组内按直接插入法排序;
step2 在第i步,分组个数取 di+1 =(di +1)/2 {9,5,3,2,1};相临两组之间的对应元素进行比较,如果ai>aj,则交换它们的位置;
Step3 当dK = 1的循环过程完成后,排序过程结束。
希尔排序举例:设有字符数列f d a c b e,执行Shell排序:

Ⅶ shell排序题

希尔Shell排序是一种插入排序算法,它出自D.L.Shell,因此而得名。Shell排序又称作缩小增量排序。先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2aj,则交换它们的位置; Step3 当dK = 1的循环过程完成后,排序过程结束。(详细请查看网络相关条目。)

Ⅷ C语言shell排序算法,这是我根据算法敲出来的,可是排序结果总是不对,麻烦哪位大师指点指点

你在交换的时候第二条语句是不是错了?
a[j]=a[i+gap];
改为:
a[j]=a[j+gap];

Ⅸ shell模型的五大要点

有四大要点,硬件、软件、环境、人。

1、H,硬件,诸如设备、设施、工具、计算机。

2、S,软件,运行规则、硬件驱动软件、指令、法令、程序、文件。

3、E,环境,运作环境、工作场所、自然环境。

4、L,人,人的绩效、能力、局限。

相关拓展

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

在排序算法中,Shell是希尔排序的名称。

以上内容参考网络-shell

Ⅹ 希尔排序法,最坏情况需要几次比较

希尔排序法,最坏情况下需要比较O(n^1.5)次

堆排序法,最坏情况需要O(nlog(2)(n))次

快速排序法,最坏情况需n(n-1)/2次

将整个无序序列分割成若干小的子序列分别进行插入排序。

序列分割方法:将相隔某个增量h的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序,排序就完成。增量序列一般采用:ht=2t-1,1≤t≤[log2n],其中n为待排序序列的长度。

(10)shell排序算法扩展阅读:

在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点,并且对插入下一个数没有提供任何帮助。如果比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。

D.L.shell于1959年在以他名字命名的排序算法中实现了这一思想。算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d,对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。

热点内容
php判断postget 发布:2025-05-14 15:34:24 浏览:357
linux查看电脑配置 发布:2025-05-14 15:32:07 浏览:317
军用压缩水 发布:2025-05-14 15:27:19 浏览:26
win7c盘加密 发布:2025-05-14 15:04:49 浏览:511
dm码编程 发布:2025-05-14 15:03:56 浏览:405
apache加密 发布:2025-05-14 14:49:13 浏览:970
安卓什么软件苹果不能用 发布:2025-05-14 14:49:03 浏览:772
jsoupjava 发布:2025-05-14 14:38:00 浏览:888
影豹选哪个配置最好 发布:2025-05-14 14:28:50 浏览:256
定期预算法的 发布:2025-05-14 14:24:08 浏览:895