插入排序,简单的理解就是找到适当的位置后插入。
如下图
图片描述

代码实现如下:

public static void insertSort(int[] nums) {
        //数组为空或者只有一个数字时返回
        if(nums == null || nums.length < 2) return;
        //定义temp来保存当前的数
        int temp = 0;
        for(int i = 1; i < nums.length; i++) {
            temp = nums[i];
            
            int j;
            for(j = i-1; j >= 0; j--) {
                
                if(temp < nums[j]) {
                    nums[j+1] = nums[j];
                }else {
                    //遇到比temp小的数时跳出当前循环
                    break;
                }
            }
            //j位置的数即为比temp小的数,因此插到后一位
            nums[j+1] = temp;
        }
    }

DrXin
14 声望0 粉丝

程序员