1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.快排 6.归并排序 ...
分类:
编程语言 时间:
2017-11-28 01:46:11
阅读次数:
222
独白: 希尔排序是经过优化的插入排序算法,之前所学的排序在空间上都是使用列表本身。而归并排序是利用增加新的空间,来换取时间复杂度的减少。这俩者理念完全不一样,注定造成的所消耗的时间不同以及空间上的不同。 归并排序涉及到递归的使用,需要理解其中精髓才能更好了解归并排序,以及其他应用到递归的算法。理解其 ...
分类:
编程语言 时间:
2017-11-25 21:43:20
阅读次数:
163
java希尔排序 1、基本思想: 希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。因此,我们要采用跳跃分割的策略:将相距某个“ ...
分类:
编程语言 时间:
2017-11-24 18:03:17
阅读次数:
217
希尔排序先将整个待排序的序列分割成若干个子序列分别进行直接插入排序,当整个序列的元素“基本有序”时,再对全体进行一次直接插入排序。需要注意的是,子序列的构成不是简单的“逐段分割”,而是将相隔某个“增量”的记录组成一个子序列,如第一趟增量为5,第二趟增量可以为..
分类:
编程语言 时间:
2017-11-22 10:19:46
阅读次数:
200
高级篇算法,包括 快速排序和希尔排序。首先介绍快速排序。 1. quicksort,C.A.R.Hoare (1934~)Turing Award,1980 2. 分治策略,分而治之 quicksort VS. mergesort (1) 将序列分为两个子序列:S = S1 + S2 规模缩小,彼此 ...
分类:
编程语言 时间:
2017-11-19 12:32:42
阅读次数:
240
/** * 直接插入排序从第二个元素开始 * 直接插入排序关键在于如何找到插入的位置(在找的过程向后移动排在它之后的元素 * @param list */ private static void insertSort(int[] list){ int i,j,temp; //直接插入排序从第二个元素... ...
分类:
编程语言 时间:
2017-11-15 21:42:27
阅读次数:
202
1 /*希尔排序:对插入排序的改进,其排序是按照一个增量序列来进行 2 *增量序列的个数就是排序的趟数。在任意增量K下,保证a[i] 0){ 25 //控制每个增量的循环 26 for(outer = h; outer h - 1 && arr[inner - h] >= temp){ 31 arr... ...
分类:
编程语言 时间:
2017-11-12 17:28:24
阅读次数:
181
交换不相邻的元素对数组的局部进行排序,最终用插入排序将局部有序的数组排序 读程序写随便写的(为了更明白就在纸上写一写运行过程) 虽然写了这个代码,这个程序理论上应该是没有问题的,但是我到现在还没运行它,每次运行都会出现下面情况 (希望以后会对它有更好的理解吧) ...
分类:
编程语言 时间:
2017-11-12 14:54:01
阅读次数:
112
package com.wang.sort; import java.util.Arrays; public class Sort { /** * 1.直接插入排序 * 思想:当前数与前面已经排好顺序的数进行比较,插入到合适的位置 * @param arra */ public void simpl... ...
分类:
编程语言 时间:
2017-11-11 14:09:09
阅读次数:
238
1.冒泡排序 2.快速排序 3.插入排序 3.1希尔排序(插入排序的一种) 4.选择排序 5. 归并排序 6.堆排序 7.计数排序 8.基数排序 9.桶排序 ...
分类:
编程语言 时间:
2017-11-11 00:23:48
阅读次数:
276