码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法一希尔排序

时间:2019-07-29 21:47:17      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:sort   增量排序   mamicode   temp   快速   有序   直接插入排序   版本   size   

希尔排序(Shell Sort)

插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。

希尔排序是非稳定排序算法。

技术图片

 

 1 class ShallSort {
 2     public void sort() {
 3         int[] arr = {1,2,5,1,4,2,12};
 4 
 5         //增量
 6         int flag = arr.length;
 7         while (flag>1){
 8             //获取增量间隔,递减
 9             flag=flag/3+1;
10             //交叉排序:所有组交叉一起排序
11             for(int i=flag;i<arr.length;i++){
12                 //每组排序细节:
13                 //从后向前排序
14                 int temp = arr[i];
15                 int j =i;
16                 //快速排序:
17                 //第一次两个之间排序,使之有序
18                 //第二次三个之间排序,使之有序
19                 //第三次四个之间排序,使之有序
20                 //类推
21                 while ( j-flag>=0 && arr[j-flag]>temp){
22                     //大数放后面
23                     arr[j]=arr[j-flag];
24                     j-=flag;
25                 }
26                 arr[j]=temp;
27             }
28         }
29     }
30 }

 

 

 

排序算法一希尔排序

标签:sort   增量排序   mamicode   temp   快速   有序   直接插入排序   版本   size   

原文地址:https://www.cnblogs.com/loveer/p/11266566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!