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     }
复制代码

 

posted @   yzmarcus  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示