原文:排序算法——Shell排序

二 Shell排序 Shell排序也叫 缩减增量排序 disminishing increment sort ,基于插入排序进行。 Shell建议的序列是一种常用但不理想的增量序列: ,...,N ,N ,N ht N ,hk hk 思路: 通过比较相隔一定间隔 hk 的元素来工作,各趟比较所用的距离随算法的进行而减小,直到只比较相邻元素的最后一趟排序为止。 步骤: 使用一个增量序列h ,h ,. ...

2017-12-11 11:14 0 1250 推荐指数:

查看详情

Shell排序算法

1、Shell排序算法的介绍   希尔排序,也称递减增量排序算法,是直接插入排序算法的一种高速而稳定的改进版本。   希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。  先取一个 ...

Tue May 28 00:25:00 CST 2019 0 1694
算法篇---Shell排序(希尔)算法

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

Sat Jan 03 21:39:00 CST 2015 1 10271
js 实现排序算法 -- 希尔排序Shell Sort)

原文:   十大经典排序算法(动图演示) 希尔排序   1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序算法描述:   将整个待排序的记录序列分割成为若干子 ...

Tue Jun 11 23:27:00 CST 2019 0 558
数据结构与算法-排序(七)希尔排序Shell Sort)

摘要 看希尔排序需要先想象出一个二维的矩阵,在这个矩阵中,有多少列数据全看步长(一定的规则得到)。处理完之后,就再接着用另一个步长组成矩阵处理。直到步长全部使用完。 这里的巧妙之处就是没有把序列先处理成二维数组,而是通过与步长配合,依旧在一维的序列中处理。 逻辑 希尔排序 ...

Wed Aug 18 05:07:00 CST 2021 0 179
排序算法--希尔排序(Shell Sort)_C#程序实现

排序算法--希尔排序(Shell Sort)_C#程序实现   排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题。例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困难。同样,存储在计算机中的数据的次序,对于处理这些数据的算法的速度和简便性而言,也具有非常深远 ...

Tue Apr 17 16:03:00 CST 2018 0 1313
SHELL排序

  插入排序运行效率较低的原因是它所执行的交换操作涉及邻近的数据项,使得数据项每次只能移动一位。例如,如果键最小的数据项刚好在数组的尾端,就需要N步来将该项放到数组的最前端。shell排序法是插入排序的扩展,它通过允许非相邻的数据项进行交换来提高效率。   该算法将文件重新安排,使 ...

Mon Nov 11 00:46:00 CST 2019 0 298
排序算法 之 桶排序

排序是一种效率很高的排序算法,它的时间复杂度为O(n),但桶排序有一定的限制,只有当待排序序列的元素为0到某一确定取值范围的整数时才适用,典型的例子比如成绩的排序等。 算法思想: 设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列 ...

Tue May 13 04:07:00 CST 2014 2 4105
排序算法——堆排序

前一阵子一直在写排序的系列文章,最近因为一些事情耽搁了几天,也穿插了几篇其他类别的随笔。今天还是回到排序上面来,善始善终,呵呵。今天要介绍的也是一种效率很高的排序——堆排序思想堆排序,顾名思义,就是基于堆。因此先来介绍一下堆的概念。堆分为最大堆和最小堆,其实就是完全二叉树。最大堆要求节点的元素都要 ...

Thu Mar 08 17:46:00 CST 2012 5 21442
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM