美文网首页
插入排序之直接插入

插入排序之直接插入

作者: 木木禾木 | 来源:发表于2021-06-12 15:47 被阅读0次

原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。
要点:设立哨兵,作为临时存储和判断数组边界之用。

    private static void sortInsert(int[] array) {
        //逐步扩大有序区
        for (int i = 1; i < array.length; i++) {
            int key = array[i];
            //分别为无序区i和有序区j指针
            int j = i - 1;
            //寻找插入位置
            while (j >= 0 && array[j] > key) {
                array[j + 1] = array[j];
                j--;
            }
            //插入元素
            array[j + 1] = key;
            printArray(String.format(Locale.getDefault(), "key = %2d , j = %2d : ", key, j + 1), array);
        }
    }

运行结果:

数组:  55  22  66  33  11  99  77  44  88
插入排序:
key = 22 , j =  0 :   22  55  66  33  11  99  77  44  88
key = 66 , j =  2 :   22  55  66  33  11  99  77  44  88
key = 33 , j =  1 :   22  33  55  66  11  99  77  44  88
key = 11 , j =  0 :   11  22  33  55  66  99  77  44  88
key = 99 , j =  5 :   11  22  33  55  66  99  77  44  88
key = 77 , j =  5 :   11  22  33  55  66  77  99  44  88
key = 44 , j =  3 :   11  22  33  44  55  66  77  99  88
key = 88 , j =  7 :   11  22  33  44  55  66  77  88  99

相关文章

  • 插入排序

    一、直接插入排序 二、折半插入排序

  • 直接插入排序

    //直接插入排序

  • 【数据结构】【C#】013-插入类排序:🥇直接插入排序(稳定)

    插入排序:直接插入排序(稳定) 【 算法思想 】 直接插入排序是一种最基本的插入排序方法,其基本操作是将第 i 个...

  • 排序——插入排序

    业精于勤荒于嬉 插入排序包括:直接插入排序、折半插入排序、希尔排序(缩小增量排序) 一、直接插入排序 1. 算法思...

  • 2.1-插入排序-直接插入

    参考链接 插入排序:直接插入排序(Straight Insertion Sort) 白话经典算法系列之二 直接插入...

  • 常用算法

    插入排序 包括直接插入排序和希尔插入排序 直接插入排序 将一个记录插入到已经排序好的有序表中。 sorted数组的...

  • 排序算法原理与代码实现

    1、直接插入排序与希尔排序 直接插入排序 直接插入排序算法步骤分为两步:首先,将第一个元素当成一个有序的序列,然后...

  • 排序算法(一)直接插入排序算法

    排序算法(一)直接插入排序算法 1.基本概念  直接插入排序(Straight-Insertion-Sort)是一...

  • 算法(排序)

    一、内部排序 1、插入排序—直接插入排序(Straight Insertion Sort) 2、插入排序—希尔排序...

  • 排序总结

    一、插入排序 插入排序分为直接插入、二分插入和希尔排序; 直接插入排序 类似于扑克的排序,将待排序列分为有序序列和...

网友评论

      本文标题:插入排序之直接插入

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