希尔排序 希尔排序是以它的创造者命名的,这个算法在插入排序的基础上做了很大的改善。希尔排序的核心理念与插入排序不同,它会首先比较距离较远的元素,而非相邻的元素。和简单地比较相邻元素相比,使用这种方案可以使离正确位置很远的元素更快的回到合适的位置。当开始用这个算法遍历数据集时,所有元素之间的距离会不断 ...
分类:
编程语言 时间:
2018-01-07 15:56:36
阅读次数:
137
class SortAlgorithm { static void Main(string[] args) { int[] arr1 = { 1, 4, 2, 7, 9, 8, 3, 6 }; //ShellSort(arr1); //DirectInsertSort(arr1); //Bubble ...
分类:
编程语言 时间:
2018-01-07 15:56:06
阅读次数:
203
初学排序算法,我觉得只需要掌握算法的精髓,没必要把所有算法都实现一遍,下面我会实现一些经典的排序算法。(均采用C++实现) 学习的排序算法包含: 1》插入排序(直接插入排序、希尔排序) 2》选择排序(简单选择排序、堆排序) 3》交换排序(快速排序、冒泡排序) 4》归并排序 5》基数排序 我认为初学者 ...
分类:
编程语言 时间:
2018-01-06 15:51:48
阅读次数:
172
这个排序算法很厉害,我个人很喜欢这个算法,但算法的时间复杂度难计。算法对增量(这里也称作step(步长))的选择也需要注意,只记得个希尔增量的最坏情况为O(n^2)、Hibbard增量的最坏情况为O(n^3/2)(书上有证明),书上说Hibbard增量的希尔排序平均情形运行时间基于模拟的结果被认为是 ...
分类:
编程语言 时间:
2018-01-02 21:18:59
阅读次数:
356
public static int[] ShellInsert(int[] arr){ int step = arr.length/2; while(step >= 1){ for(int i=step;i=0 && temp<arr[j];j-=step){ arr[j+step] ... ...
分类:
编程语言 时间:
2017-12-30 22:42:25
阅读次数:
183
部分内容转自-http://blog.csdn.net/morewindows/article/details/6668714 希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。 该方法因DL.Shell于1959年提出而得名。 希尔排序的基本思想是: ...
分类:
编程语言 时间:
2017-12-29 15:33:12
阅读次数:
190
import java.util.ArrayList; import java.util.List; /** * 排序算法主类 * * @author eric */ class SortArray { /* * 【插入排序】 * 基本思想: 在要排序的一组数中,假设前面(n-1) [n>=2] 个... ...
分类:
编程语言 时间:
2017-12-27 14:12:37
阅读次数:
131
希尔排序介绍 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干 ...
分类:
编程语言 时间:
2017-12-26 21:01:02
阅读次数:
227
排序 实验七 排序 一、实验目的 1. 熟悉各种内部排序算法 2. 能够编写程序显示排序过程中各趟排序的结果 3. 能够编写一些排序的算法 二、实验内容 1. 采用希尔排序方法对顺序表中的证型数据进行排序,设计希尔排序算法并显示每趟排序的结果。 2. 编写一个双向起泡的排序算法,即在排序过程中交替改 ...
分类:
其他好文 时间:
2017-12-25 21:27:13
阅读次数:
226
public class ShellSort { public static void main(String[] args) { int A[] = { 5, 2, 9, 4, 7, 6, 1, 3, 8 };// 从小到大希尔排序 sort(A,A.length); for (int i = 0... ...
分类:
系统相关 时间:
2017-12-16 14:44:41
阅读次数:
135