JAVA插入排序学习

视频https://www.bilibili.com/video/BV1E8411e718

package com.horse;

import java.util.Arrays;

public class Sort {
    public static void main(String[] args) {
        int arr[] = {4, 1, 8, 2, 3, 11};
        System.out.println(Arrays.toString(arr));//打印排序前数组
        sort(arr);
        System.out.println(Arrays.toString(arr));//打印排序后数组
    }

    public static void sort(int[] a) {
        //将a[]按升序排列
        for (int i = 1; i < a.length; i++) {
            //将a[i]插入到a[i-1],a[i-2],a[i-3]……之中
            int temp = a[i];//将要插入的数保存起来
            int j = i;//为了后面的a[j]=temp能用到j变量,把j定义在下面的for循环外面
            for (; j > 0 && (temp < a[j - 1]); j--) {
                a[j] = a[j - 1];//把前面较大的数后移
            }
            a[j]=temp;//执行插入
        }
    }
}