插入排序 Java 实现 + 思路详解

发布时间:2026/9/11 16:20:11

插入排序 Java 实现 + 思路详解 一、核心思想插入排序把数组分成两部分左侧已排序区间、右侧未排序区间默认第 0 个元素天然有序已排序区间[0]依次取出未排序区间第一个元素记为待插入元素向前遍历有序区间比待插入元素大的元素统一向后挪动一位找到合适空位将待插入元素放入循环直到所有元素完成插入。算法特性面试重点时间复杂度 最坏 / 平均 \(O(n^2)\)最好情况 (数组已有序) \(O(n)\)稳定排序适合小规模数据、接近有序的数据二、完整代码升序java运行public class InsertSort { public static void main(String[] args) { int[] arr {5, 2, 9, 3, 7, 6, 1}; System.out.println(排序前); printArr(arr); insertSort(arr); System.out.println(排序后); printArr(arr); } /** * 插入排序 升序 */ public static void insertSort(int[] arr) { int len arr.length; // i从1开始arr[0]默认有序从第二个元素开始处理 for (int i 1; i len; i) { // 当前要插入的元素 int temp arr[i]; // j指向有序区间末尾 int j i - 1; // 向前遍历有序区间大于temp的元素后移 while (j 0 arr[j] temp) { arr[j 1] arr[j]; j--; } // j1 就是temp插入的位置 arr[j 1] temp; } } // 打印数组 public static void printArr(int[] arr) { for (int num : arr) { System.out.print(num ); } System.out.println(); } }三、简单推演示例数组[5,2,9,3]i1temp2 j0arr[0]52 → arr[1]5j-1 arr[0]2 →[2,5,9,3]i2temp9 arr [1]5 9不用移动直接原位放置i3temp3 j2:93 → arr [3]9j1 j1:53 → arr [2]5j0 j0:23停止arr [1]3 最终[2,3,5,9]四、冒泡 / 选择 / 插入 快速区分冒泡排序相邻比较边比较边交换大数逐步往后浮选择排序一轮找到最值下标一轮最多交换 1 次插入排序逐个拿元素向前找位置、元素后移插入空位
延伸阅读

更多相关文章

2026/9/10 23:31:01

Tiva Hibernate模块RTC配置:嵌入式低功耗精准定时唤醒实战指南

1. 项目概述与核心价值 在嵌入式系统,尤其是电池供电的物联网设备、便携式医疗仪器或智能仪表中,如何实现“超长待机”是一个永恒的挑战。系统大部分时间处于深度休眠状态,但关键时刻(如定时采集数据、触发报警、记录事件&#xf…

2026/9/10 10:00:28

TI bq27505电量计操作配置与引脚功能代码深度解析

1. 项目概述与核心价值在嵌入式系统,尤其是便携式设备的设计中,电池管理单元(BMU)的精度和可靠性直接决定了产品的用户体验和市场竞争力。用户看到的可能只是屏幕上那个小小的电量百分比,但背后却是一套复杂的系统在实…

2026/9/11 16:17:37

QGIS与Cesium瓦片地图集成开发指南

1. QGIS与Cesium瓦片地图数据集成概述在GIS开发领域,QGIS作为开源地理信息系统代表工具,与Cesium这一领先的Web三维地图引擎的协同使用正成为行业趋势。最近在完成一个智慧城市项目时,我需要将Cesium的二维瓦片地图服务集成到QGIS桌面环境中进…

2026/9/11 16:17:37

Pico+W5500实现TCP客户端:硬件连接、三次握手与状态机详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 16:17:36

AI Agent后端选型:PolarDB Agent Express与VM级安全隔离实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 16:17:36

深度学习实战知识地图:从张量梯度到模型压缩全解析

简介:面向深度学习入门者与中高级开发者的系统化资料合集,内容覆盖数学基础、神经网络核心部件、调参炼丹策略、模型压缩算法及推理框架实战等完整链路,适合作为计算机、数学、电子信息等专业课程设计、期末大作业或毕设的参考资料。压缩包共…

2026/9/11 16:17:36

kettle 社区版源码编译 11.1

Maven 版本3.9.11 Java版本 18下载源码 开启watt&#xff0c;访问github网站 https://github.com/pentaho/pentaho-kettle 选择 master分支&#xff0c;下载为zip文件&#xff08;我下载的时候版本是11.1.0.0-SNAPSHOT&#xff09;Maven 配置 添加mirror配置 <mirror><…

2026/9/11 16:12:35

Typst 安装与配置:10 分钟从零到第一个 PDF

Typst 安装与配置&#xff1a;10 分钟从零到第一个 PDF 【免费下载链接】typst A markup-based typesetting system that is powerful and easy to learn. 项目地址: https://gitcode.com/GitHub_Trending/ty/typst 等排版引擎编译了整整 40 秒&#xff0c;只为了改一个…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊&#xff01;#雷神 #复联”这类调侃式短标题&#xff0c;第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里&#xff0c;但细想一下就能发现&#xff0c;它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊&#xff0c;可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”&#xff0c;你会发现&#xff0c;这场比较本质上是两个不同 IP 策略的长期结果对比&#xff1a;超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介&#xff1a;本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案&#xff0c;聚焦调制信号自动检测与识别这一典型无线通信任务&#xff0c;解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件&#xff08;10.73MB&#xff09;&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码