Java排序算法(四):希尔排序
来源:互联网 发布:spss编程计算概率 编辑:程序博客网 时间:2024/06/08 17:08
[基本思想]
将原本有大量记录数的记录进行分组,分割成若干个子序列,此时每个子序列待排序的记录个数就比较少了,然后在这些子序列内分别进行直接插入排序,当整个序列都基本有序时,再对全体记录进行一次直接插入排序。
所谓的基本有序,就是小的关键字基本在前面,大的基本在后面,不大不小的基本在中间,像{2, 1, 3, 6, 4, 7, 5, 8, 9}这样可以称为基本有序了。
[java实现]
public class ShellSort {public static void main(String[] args) {int[] arr = { 6, 5, 3, 1, 8, 7, 2, 4 };System.out.println("排序之前:");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}// 希尔排序shellSort(arr);System.out.println();System.out.println("排序之后:");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}/** * 希尔排序 */private static void shellSort(int[] arr) {int j;for (int gap = arr.length / 2; gap > 0; gap = gap / 2) {for (int i = gap; i < arr.length; i++) {int tmp = arr[i];for (j = i; j >= gap && tmp < arr[j - gap]; j = j - gap) {arr[j] = arr[j - gap];}arr[j] = tmp;}}}}[算法说明]
希尔排序时间复杂度:O(nlogn)
希尔排序并不是一种稳定的排序算法。
1 0
- Java排序算法(四):希尔排序
- Java排序算法总结(四):希尔排序
- Java排序算法总结(四):希尔排序
- 基于JAVA的排序算法之四--希尔排序
- java算法之四希尔排序(插入排序)
- 排序算法(四):JAVA实现希尔排序
- java希尔排序算法
- java希尔排序算法
- java希尔排序算法
- Java算法-希尔排序
- Java排序算法 希尔排序
- Java排序算法:希尔排序
- JAVA排序算法---希尔排序
- C#算法----(四)希尔排序
- 排序算法总结(四)希尔排序
- 蛙步学排序算法之四 - 希尔排序
- 【算法-排序之四】希尔排序
- 【算法-排序之四】希尔排序
- iOS实现图文混排效果
- 【KM算法】【最大乘积生成树】[HNOI2014] bzoj3571 画框
- 黑马程序员 Java高兴技术----反射机制
- [Leetcode] 11. Container With Most Water
- 风险管理岗面试
- Java排序算法(四):希尔排序
- ORALCE 高级函数 Over()
- String, StringBuffer, StringBuilder比较
- javascript深入理解js闭包
- BFS:中国象棋中的跳马问题
- linux下 open() write() read() close函数
- 黑马程序员-----java基础----API(二)
- 离线+并查集 Portal
- VELT-0.1.5开发:在VS2013下进行python开发