美文网首页
希尔排序

希尔排序

作者: 极客123 | 来源:发表于2018-12-07 16:33 被阅读0次
import java.util.Arrays;




/**
 * 希尔排序:高级算法之一,书写逻辑简单
 * @author admin
 *
 */
public class ShellSort {
    public static void main(String[] args) {
        int [] tmp = new int []{9,7,5,3,1,8,6,4,2,0,12,3,4,5,2};
        int[] sort = sort(tmp);
        System.out.println(Arrays.toString(sort));
    }
    
    private static int []  sort( int [] arrs) {
        int len = arrs.length;
        int temp, gap = len/2;//增量(步长):分组的数量,
        while(gap > 0){
            //循环遍历每个Gap中的数据并对每个组项做插入排序
            System.out.println(Arrays.toString(arrs));
            //对每个组项中进行插入排序
            for (int i = gap; i < arrs.length; i++) {
                temp = arrs[i]; //当前操作的数据:临沭数据
                int preIndex = i-gap; // 这里有两点作用: 1.控制步长,保证,每次按照指定的步长比较两个数大小2.作为递归的结束条件
                //对当前操作的数据在当前组项中找到插入的坐标,并将对应该坐标及其后面的数据后移一位
                while (preIndex >=0 && arrs[preIndex] > temp ) {
                    arrs[preIndex+gap]=arrs[preIndex]; 
                    preIndex-=gap;//递归控制
                }
                //将当前操作的数据放到找到的坐标的位置
                arrs[preIndex + gap] = temp; 
            }
            gap /= 2;
        }
        return arrs;    
    }
}

相关文章

  • 排序算法(二)之希尔排序

    图解排序算法(二)之希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也...

  • 07-希尔排序(Shell Sort)

    希尔排序(Shell Sort) 希尔排序是唐纳德·希尔(Donald Shell)在0959年提出的。希尔排序与...

  • 排序-希尔排序(分治)

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • swift经典算法-希尔排序

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • 排序算法④——希尔排序

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • 排序算法-希尔排序(Java实现)

    希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是...

  • 说说算法那些事-希尔排序

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,希尔排序法又称...

  • 希尔排序学习

    希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基...

  • 排序算法(四) 希尔排序(插入排序的进化)

    参考Java排序算法(四):希尔排序常见排序算法 - 希尔排序 (Shell Sort) 希尔排序算法是按其设计者...

  • 编程马拉松 Day04 希尔排序、归并排序、快速排序

    本文将介绍三个高级排序算法 希尔排序 归并排序 快速排序 希尔排序 希尔排序(Shell's Sort)的名称源于...

网友评论

      本文标题:希尔排序

      本文链接:https://www.haomeiwen.com/subject/quzthqtx.html