java实现插入排序

图解

以下是Java实现插入排序的代码:

java 复制代码
public class InsertionSort {
    public static void main(String[] args) {
        int[] arr = {5, 2, 4, 6, 1, 3};
        insertionSort(arr);
        System.out.println(Arrays.toString(arr)); // output: [1, 2, 3, 4, 5, 6]
    }

    public static void insertionSort(int[] arr) {
        int n = arr.length;
        for (int i = 1; i < n; i++) {
            int key = arr[i];
            int j = i - 1;
            while (j >= 0 && arr[j] > key) {
                arr[j + 1] = arr[j];
                j--;
            }
            arr[j + 1] = key;
        }
    }
}

在插入排序中,我们从第二个元素开始,将其与已排序好的子数组中的元素进行比较,并将其插入到合适的位置中。在这个过程中,我们需要不断地向前移动已排序好的子数组中的元素,以为这个新的元素腾出位置。

相关推荐
Engineer邓祥浩1 分钟前
设计模式学习(15) 23-13 模版方法模式
java·学习·设计模式
茶本无香2 分钟前
设计模式之四:建造者模式(Builder Pattern)详解
java·设计模式·建造者模式
毕设源码-赖学姐2 分钟前
【开题答辩全过程】以 高校素拓分管理系统的设计与开发为例,包含答辩的问题和答案
java·eclipse
自然语3 分钟前
三维场景管理类位姿抖动优化计划
人工智能·数码相机·算法
计算机学姐5 分钟前
基于SpringBoot的社区互助系统
java·spring boot·后端·mysql·spring·信息可视化·推荐算法
源代码•宸10 分钟前
Leetcode—3314. 构造最小位运算数组 I【简单】
开发语言·后端·算法·leetcode·面试·golang·位运算
夏鹏今天学习了吗10 分钟前
【LeetCode热题100(88/100)】最长回文子串
算法·leetcode·职场和发展
lbb 小魔仙10 分钟前
【Java】深入解析 Java 集合底层原理:HashMap 扩容与 TreeMap 红黑树实现
java·开发语言
轻微的风格艾丝凡12 分钟前
圆周率(π)2-10进制转换及随机性量化分析技术文档
人工智能·算法
June bug12 分钟前
【配环境】安装配置Oracle JDK
java·数据库·oracle