直接插入排序的简单实现

一、过程演示

i 从 1 开始,j 从 i - 1 开始

把 array[ i ] 的值记录在 temp 里

当array[ j ] 的值大于 temp,将array[ j ] 的值赋给 array[ j + 1],然后 j - -

当 array[ j ] 的值小于 temp 时,把temp 的 值 赋给array[ j + 1],还有一种情况是当j 为 0,

array[ j + 1] = temp;

然后后续重复这个过程

二、代码实现

java 复制代码
    public static void insertSort(int[] arr) {
        for(int i = 1; i < arr.length; i++) {
            int temp = arr[i];
            int j = i - 1;
            for(; j >= 0; j--) {
                if(arr[j] > temp) {
                    arr[j + 1] = arr[j];
                }else{
                    arr[j + 1] = temp;
                    break;
                }
            }
            arr[j + 1] = temp;
        }
    }

时间复杂度:O(n^2)

空间复杂度: O(1)

稳定性: 稳定的排序

插入排序有一个特点,数据越有序,速度越快

相关推荐
weixin_512976171 分钟前
Java 面试宝典 Beta5.0
java
luoganttcc2 分钟前
大模型是否即将到达算法极限
算法
Ting-yu4 分钟前
Spring AI Alibaba零基础速成(5) ---- Memory(记忆)
java·人工智能·后端·spring
月落归舟7 分钟前
一文掌握Spring AOP:从入门到底层原理
java·后端·spring
QuZhengRong9 分钟前
【Luck-Report】缓存
java·前端·后端·vue·excel
XiYang-DING21 分钟前
【Spring】SpringMVC
java·后端·spring
想学习java初学者22 分钟前
SpringBoot整合GS1编码解码
java·spring boot·后端
日月云棠23 分钟前
2 快速入门实战指南
java·后端
日月云棠24 分钟前
3 Dubbo 2.7 高级配置:检查控制、版本策略与协议选择
java·后端
叶小鸡30 分钟前
小鸡玩算法-力扣HOT100-动态规划(上)
算法·leetcode·动态规划