zoukankan      html  css  js  c++  java
  • 003-排序算法-直接插入排序

    一、概述

      直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。

    排序方法时间复杂度(平均)时间复杂度 (最坏)时间复杂度(最好)空间复杂度稳定性高效场景
    插入排序 O(n^2) O(n^2) O(n) O(1) 稳定 小规模数据或基本有序时

    1.1、 算法说明

        

       第0位独自作为有序数列,从第1位开始向后遍历。

    1.2、算法实现

        public static void insertSort(int[] array) {
            for (int i = 1; i < array.length; i++) {//第0位独自作为有序数列,从第1位开始向后遍历
                if (array[i] < array[i - 1]) {//0~i-1位为有序,若第i位小于i-1位,继续寻位并插入,否则认为0~i位也是有序的,忽略此次循环,相当于continue
                    int temp = array[i];//保存第i位的值
                    int k = i - 1;
                    for (int j = k; j >= 0 && temp < array[j]; j--) {//从第i-1位向前遍历并移位,直至找到小于第i位值停止
                        array[j + 1] = array[j];
                        k--;
                    }
                    array[k + 1] = temp;//插入第i位的值
                }
            }
        }

    代码地址:地址 中的rithm-001-sort中 InsertSort  

    参看地址:https://baike.baidu.com/item/%E7%9B%B4%E6%8E%A5%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F/8255911?fr=aladdin

        https://lingwei.fun/2018/08/04/%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F/

  • 相关阅读:
    [声明]博主退役了
    galgame(s?)
    atcoder grand contest 040 F Two Pieces
    AtCoder Grand Contest 040 E
    【AtCoder】CODE FESTIVAL 2016 qual C E-順列辞書 / Encyclopedia of Permutations
    GMOJ6282 向量
    [GMOJ6281] 串
    GMOJ 5909 跑商
    2019.10.28 GMOJ 6394 燃烧的火焰
    题解 CF1092B 【Teams Forming】
  • 原文地址:https://www.cnblogs.com/bjlhx/p/10935924.html
Copyright © 2011-2022 走看看