当前位置: 代码迷 >> 综合 >> 十大排序算法-插入排序
  详细解决方案

十大排序算法-插入排序

热度:103   发布时间:2023-10-17 05:57:54.0

插入排序(Insertion Sort)

原理:就好比我们打扑克排的抓牌阶段,我们一般拿到一张新的排会与前面的牌进行比较,然后放到合适的位置,即每次抓到牌后默认前面的牌已经全部排好序。

将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。

逻辑代码

public class InsertionSort {
    public static void main(String[] args) {
    int[] arrs = {
    3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};int len = arrs.length;for (int i = 1; i < len; i++) {
    int current = arrs[i];int j = i - 1;while (j >= 0 && current < arrs[j]) {
    arrs[j + 1] = arrs[j];j--;}arrs[j + 1] = current;Utils.printArr(arrs);}}
}

2.演示图:
演示图片为转载,转载地址:https://www.runoob.com/w3cnote_genre/algorithm
十大排序算法-插入排序

总结

时间复杂度(平均) 时间复杂度(最好) 时间复杂度(最坏) 空间复杂度 稳定性
O(n?) O(n?) O(n) O(1) 稳定
  相关解决方案