//shell排序配插入排序function shell_insert_sort(arr){ var gap = arr.length; do{ gap = parseInt(gap/3) + 1; console.log(gap); for(var i = gap; i < arr.length;
分类:
编程语言 时间:
2016-02-21 11:37:43
阅读次数:
147
Shell 排序利用分组加速部分有序数组排序,分组定长跳跃冒泡 希尔排序的时间性能优于直接插入排序的原因: ①当文件初态基本有序时直接插入排序所需的比较和移动次数均较少。 ②当n值较小时,n和 n^2 的差别也较小,即直接插入排序的最好时间复杂度O(n)和最坏时间复杂度0( )差别不大。 ③在希尔排
分类:
编程语言 时间:
2016-02-15 22:30:22
阅读次数:
226
希尔(Shell)排序算是插入排序的一种改进。在插入排序的过程中,数组元素移动到相邻位置。当一个元素离他的正确位置很远时,就必须做很多次这样的移动。如果一个数组是完全乱序的,插入排序就要花很长时间,但是如果一个数组接近有序,移动次数就很少,效率就比较高了。希尔算法是唐纳德希尔(Donald Shel...
分类:
编程语言 时间:
2015-10-30 20:15:56
阅读次数:
286
排序算法大致有直接插入排序、折半插入排序、Shell排序、归并排序、直接选择排序、堆排序、冒泡排序、快速排序、桶式排序、基数排序等这些种,各个算法都有其优异性,大家不妨自己看看。下面贴上每个算法的简单讲解和实现: 1.直接选择排序(DirectSelectSort):其关键就是对n个数据要进行n-1...
分类:
编程语言 时间:
2015-10-18 23:10:09
阅读次数:
307
排序算法大致有直接插入排序、折半插入排序、Shell排序、归并排序、直接选择排序、堆排序、冒泡排序、快速排序、桶式排序、基数排序等这些种,各个算法都有其优异性,大家不妨自己看看。下面贴上每个算法的简单讲解和实现: 1.直接选择排序(DirectSelectSort):其关键就是对n个数据要进行n-1...
分类:
编程语言 时间:
2015-10-17 21:55:39
阅读次数:
264
//希尔排序(shell排序)#includeusing namespace std;void print(int a[], int n ,int i){ cout= 1 ) { ShellInsertSort(a, n, d); d = d/2;...
分类:
编程语言 时间:
2015-10-12 17:22:54
阅读次数:
156
稳定的排序算法:归并,插入排序 不稳定的排序算法:选择排序 (5,7,5,3: 3和5交换之后,两个5的相对顺序发生了变化) shell排序 (1, 5, 5, 2,3, 7 : shell序列为(3, 1), 3的时候(1,5,7)(5,2,3)), 在间隔>1的时候会出现不稳定 快速排序 (.....
分类:
编程语言 时间:
2015-09-16 17:35:30
阅读次数:
198
由于多次插入排序,我们知道一次插入排序是稳定的,不会改变相同元素的相对顺序,但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱,所以shell排序是不稳定的。希尔排序属于插入类排序,是将整个有序序列分割成若干小的子序列分别进行插入排序。排序过程:先取一个正整数d1...
分类:
编程语言 时间:
2015-09-16 17:30:46
阅读次数:
166
package com.edu.hpu.sort.insert.shell;import java.util.Arrays;import com.edu.hpu.sort.Sort;public class ShellSort extends Sort { @Override publi...
分类:
编程语言 时间:
2015-09-07 10:55:43
阅读次数:
168
时间复杂度(渐近时间复杂度的严格定义,NP问题,时间复杂度的分析方法,主定理)排序算法(平方排序算法的应用,Shell排序,快速排序,归并排序,时间复杂度下界,三种线性时间排序,外部排序)数论(整除,集合论,关系,素数,进位制,辗转相除,扩展的辗转相除,同余运算,解线性同余方程,中国剩余定理)指针(...
分类:
其他好文 时间:
2015-09-01 21:16:57
阅读次数:
241