美文网首页算法
排序算法:插入排序_希尔排序

排序算法:插入排序_希尔排序

作者: ADark0915 | 来源:发表于2018-02-27 16:15 被阅读6次

基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)继续对它进行分组,并对每组中全部元素再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。

private void shellSort(int[] pInts) {

        // 定义一个增量值d,并初始化为数组的长度
        int d = pInts.length;

        int temp;

        while (true) {

            d = d >>> 1;

            for (int x = 0; x < d; x++) {
                for (int i = x + d; i < pInts.length; i += d) {
                    int j = i - d;
                    temp = pInts[i];

                    for (; j >= 0 && pInts[j] > temp; j -= d) {
                        pInts[j + d] = pInts[j];
                    }

                    pInts[j + d] = temp;

                }

            }
            if (d == 1) {
                break;
            }
        }
    }

相关文章

  • 常用的排序算法详解:希尔排序,桶排序,选择排序,冒泡排序,快速排

    排序算法——希尔排序 希尔排序是插入排序的一种,又称"缩小增量排序”,是插入排序算法的一种更高效的改进版本。 希尔...

  • 详解排序算法--希尔排序

    希尔排序 希尔排序的由来是根据插入排序的。读者若不了解插入排序,可以参考笔者的详解排序算法--插入排序和冒泡排序....

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

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

  • swift经典算法-希尔排序

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

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

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

  • 排序算法-7---希尔排序

    排序算法-7---希尔排序 概念 希尔排序(Shellsort),也称递减增量排序算法,是一种典型的插入排序算法,...

  • 算法学习:希尔排序

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

  • 希尔排序学习

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

  • 前端基础整理 | 算法基础

    排序算法 冒泡排序 选择排序 插入排序 希尔排序 归并排序 堆排序 快速排序

  • 希尔排序

    算法学习记录-排序——希尔排序 - sjdang - 博客园iOS算法总结-希尔排序 - 简书 与插入排序不同,我...

网友评论

    本文标题:排序算法:插入排序_希尔排序

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