希尔排序
来源:互联网 发布:服装设计淘宝 编辑:程序博客网 时间:2024/03/29 14:08
希尔排序
对于大规模乱序数组来说,插入排序很慢,因为它只会交换相临近的元素
因此元素只能一点一点的从一端移动到另一端。希尔排序进行了改进。
希尔排序的思想是使得数组中任意间隔为h的元素都是有序的。
h有序数组:h个相互独立的数组编织在一起组成一个数组。
实现希尔排序的一种方法是对于每个h,用插入排序将h个子数组独立的排序。
- 代码实现
//在插入排序中加入一个外循环,控制h的变化public void sort(int[] a){ int N = a.length; int h = 1; while(h < N/3) h = 3*h+1; //1, 4, 13... while(h >= 1){ //将数组变为h有序 for(int i = h; i < N; i++){//进行插入排序 //将a[i]插入到a[i-h], a[i-2*h], a[i-3*h]...之中 for(int j = i; j >= h && less(a[j], a[j-h]); j -= h) exch(a, j, j-h); } h = h/3; } }
阅读全文
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- Java+Selenium3框架设计准备篇4-TestNG实现DDT(2)
- 使用jsoup获取页面元素
- R语言报告 单因素方差分析
- Codeforces Round #422 (Div. 2) 解题报告
- python 类
- 希尔排序
- Leetcode OJ 73 Set Matrix Zeroes [Medium]
- asp.net 快速简单的导出数据 DataTable导出到Excel、GSV
- hdu 2642 Stars(二维数组 单点更新 区间查询)
- C#深度拷贝,浅拷贝
- string and stringstream(1)
- Linux系统-git分支相关操作
- jsp页面中文乱码问题
- 《APP研发录》读书笔记(1、重构)