3:插入排序
3:插入排序
插入排序思想描述:
1、数组0到0位置,只有1个数,必定有序
2、数组0~1位置,盯着1位置的数,往左看:如果arr[1]>arr[0]停止。否则arr[0]与arr[1]交换,
再看arr[0]的左边有没有数,没数了停止。此时0~1位置上数有序。
3、数组0~2位置,盯着2位置的数,往左看:如果arr[2]>arr[1]停止。否则arr[2]与arr[1]交换,
再看arr[1]的左边有没有数,没数了停止;有数,比较arr[0]与arr[1],如果arr[1]>arr[0]停止。
否则arr[0]与arr[1]交换,再看arr[0]的左边有没有数,没数了停止。此时0~2位置上数有序。
...........................
4、直到0~N-1位
1 public static void insertionSort(int[] arr) {
2 if (arr == null || arr.length < 2) {
3 return;
4 }
5 // 不只1个数
6 for (int i = 1; i < arr.length; i++) { // 0 ~ i 做到有序
7 for (int j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) { //注意这个j,每次都是i位置的左边一个数
8 swap(arr, j, j + 1);
9 }
10 }
11 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!