希尔排序(缩小增量排序) <script type="text/javascript"> var obj={ data:[0,3,11,5,7,4,8,9,5], length:8 }; //希尔排序(缩小增量排序) //思想:希尔排序是在直接插入排序的基础上得来的,直接插入在待排序的 //序列基本 ...
分类:
系统相关 时间:
2017-10-17 09:56:53
阅读次数:
171
代码来自码云 public static void shellSort(int[] arr){ //初始化增量 int h = 1; //计算最大间隔,公式:h = h * 3 + 1 while(h < arr.length / 3){ h = h * 3 + 1; } //缩小增量进行排序 wh ...
分类:
编程语言 时间:
2017-10-11 15:15:58
阅读次数:
176
直接插入排序 要理解shell排序,首先要把直接插入排序的基础打扎实。 学习资料:白话经典算法系列之二 直接插入排序的三种实现、直接插入排序 根据我的思路,直接插入排序设置3重循环。 循环1:对 i=【无序序列】∈[ 1 , length ) 进行遍历。 循环2:对 j=【有序序列】∈[ 0 , i ...
分类:
编程语言 时间:
2017-10-10 14:29:43
阅读次数:
232
package TT; public class Test206 { public static void shellSort(int[] data){ int h=1; while(h0){ for(int i =h; i=0 && tmp<data[j]){ data[j+h]=data[j];... ...
分类:
编程语言 时间:
2017-09-27 17:34:24
阅读次数:
168
希尔排序 no 实现 希尔排序其实就是插入排序。只不过希尔排序在比较的元素的间隔不是1。 我们知道插入排序 都是 一个一个和之前的元素比较。发现比之前元素小就交换位置。但是希尔排序可能是和前第n个元素比较,如果发现比前第n个元素小就和前第n个元素交换位置。具体看下图 第一趟比较。n是为5。也就是说每 ...
分类:
编程语言 时间:
2017-09-15 22:32:16
阅读次数:
263
func ShellSort(num []int) { //increment相隔数量 for increment:=len(num)/2;increment>0 ;increment/=2 { //i序号较大的数组下标,i ,j进行比较 for i := increment; i = 0; j -... ...
分类:
编程语言 时间:
2017-08-10 01:09:06
阅读次数:
126
ShellSort He made each turtle stand on another one's back And he piled them all up in a nine-turtle stack. And then Yertle climbed up. He sat down on ...
分类:
系统相关 时间:
2017-05-30 16:02:21
阅读次数:
216
使用希尔增量时排序的最坏为:O(n^2); 代码如下: 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 template <typename Comparable> 5 void shellsort(vector< ...
分类:
编程语言 时间:
2017-05-19 23:50:10
阅读次数:
198
之前几个排序时间复杂度是n方,接下来这几个速度就要比较快了 ShellSort.h 希尔排序 它的做法是: 将间隔的元素看作一个子序列,对其进行插入排序 缩小间隔,继续对子序列排序 直到间隔为1 比如10个元素 将147 10,258,369分别插入排序 然后对13579,2468 10分别插入排序 ...
分类:
编程语言 时间:
2017-04-17 09:13:25
阅读次数:
200
public class ShellSort { public static void print(int[] arr) { for (int i : arr) { System.out.print(i + " "); } System.out.println(); } public static ...
分类:
编程语言 时间:
2017-04-07 23:28:46
阅读次数:
220