原理: 希尔排序是在插入排序的基础上进行修改,分为三步: 1.计算最大间隔 2.执行插入排序 3.缩小间隔 源代码: public class MyShellSort { public static void Sort(int[] array) { int h =1; //初始化时间间隔 //计算最 ...
分类:
编程语言 时间:
2018-02-27 11:35:06
阅读次数:
178
插入排序包括直接插入排序、希尔排序。 1、直接插入排序: 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用插入。 设定插入数和得到已经排好序列的最后一个数的位数。insertNum和j=i-1。 从最后一个数开始向前循环,如果插入数小 ...
分类:
编程语言 时间:
2018-02-26 17:47:33
阅读次数:
217
希尔排序 概要 本章介绍排序算法中的希尔排序。内容包括:1. 希尔排序介绍2. 希尔排序图文说明3. 希尔排序的时间复杂度和稳定性4. 希尔排序实现4.1 希尔排序C实现4.2 希尔排序C++实现4.3 希尔排序Java实现 转载请注明出处:http://www.cnblogs.com/skywan ...
分类:
编程语言 时间:
2018-02-24 15:04:04
阅读次数:
229
def bubble_sort(a_list): for pass_num in range(len(a_list) - 1, 0, -1): for i in range(pass_num): if a_list[i] > a_list[i + 1]: a_list[i], a_list[i + ... ...
分类:
编程语言 时间:
2018-02-20 20:21:25
阅读次数:
192
O(n^2)级别的算法主要包括:选择排序,插入排序,冒泡法排序,希尔排序等 选择排序:选择排序,将后面未排序数组中最小的与前面的元素交换 插入排序,选择前面数组已经排好序的部分合适的插入位置 冒泡法:每次循环将最大的放到挤出到后面位置 ...
分类:
编程语言 时间:
2018-02-18 20:42:48
阅读次数:
180
图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) 图解排序算法(二)之希尔排序 图解排序算法(三)之堆排序 图解排序算法(四)之归并排序 图解排序算法(五)之快速排序——三数取中法 ...
分类:
编程语言 时间:
2018-02-16 11:14:23
阅读次数:
223
各种排序算法的稳定性和时间复杂度小结 各种排序算法的稳定性和时间复杂度小结 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 冒泡排序是稳定的,算法时间复杂度是O(n ^2)。 2.2 选择排序(Selection Sort) 选择排 ...
分类:
编程语言 时间:
2018-02-07 14:42:21
阅读次数:
136
本文对常见的排序算法进行了总结。 常见排序算法如下: 1. "直接插入排序" 2. "希尔排序" 3. "简单选择排序" 4. "堆排序" 5. "冒泡排序" 6. "快速排序" 7. "归并排序" 8. "基数排序" <! more 它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排序算 ...
分类:
编程语言 时间:
2018-02-05 21:50:42
阅读次数:
246
1.冒泡排序 2.选择排序 3.插入排序 4.快速排序 5.堆排序 6.并归排序 7.希尔排序 8.内置堆模块排序 9.计数排序 ...
分类:
编程语言 时间:
2018-02-02 22:03:23
阅读次数:
207
#希尔排序 def insert_sort(li): for i in range(1, len(li)): # i 表示无序区第一个数 tmp = li[i] # 摸到的牌 j = i - 1 # j 指向有序区最后位置 while li[j] > tmp and j >= 0: #循环终止条件: ...
分类:
编程语言 时间:
2018-02-01 20:36:26
阅读次数:
121