zoukankan      html  css  js  c++  java
  • 排序算法一希尔排序

    概述

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

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

     

     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
  • 相关阅读:
    29 求和
    28 跳转控制语句 goto
    27 跳转控制语句 continue
    26 跳转控制语句 break
    25 打印金字塔
    24 打印九九乘法表
    23 多重循环控制
    22 do-while 循环
    21 while 循环
    20 for循环控制
  • 原文地址:https://www.cnblogs.com/loveer/p/11266566.html
Copyright © 2011-2022 走看看