一、概述

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

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

 

1.1、 算法说明

    003-排序算法-直接插入排序

   第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/

 

 

 

 

 

 

 

 

相关文章:

  • 2021-08-18
  • 2021-09-09
  • 2021-04-07
  • 2021-03-31
猜你喜欢
  • 2021-07-30
  • 2021-09-10
  • 2021-09-26
  • 2022-12-23
  • 2021-07-20
  • 2021-07-20
相关资源
相似解决方案