其他分享
首页 > 其他分享> > 3:插入排序

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) {

 

 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     }

 

标签:arr,int,插入排序,位置,length,停止
来源: https://www.cnblogs.com/yzmarcus/p/16215590.html