Skip to content

插入排序

插入排序算法回顾

题目

示例1

输入: nums = [4,0,1,2,0,5]
输出: [0,0,1,2,4,5]

解题思路

插入排序算法回顾

插入排序是一种简单直观的排序算法,其基本原理是通过构建有序序列,对未排序的数组,需要在已排序的序列中从后向前进行扫描,找到相应位置并插入。在从后向前扫描的过程中,需要反复把已排序的元素向后移动,为新元素提供插入的空间。

插入排序是稳定的排序算法,时间复杂度O(n^(1-2))

Java代码

java
public class InsertSort {
    public static void main(String[] args) {
        int[] arr = {4, 0, 1, 2, 0, 5};
        insertSort(arr, arr.length - 1);
        for (Integer i : arr) {
            System.out.print(i);
        }
    }

    public static void insertSort(int arr[], int len) {
        for (int i = 1; i < len; i++) {
            int temp = arr[i];
            int left = i - 1;
            while (left >= 0 && arr[left] > temp) {
                arr[left + 1] = arr[left];
                left--;
            }
            arr[left + 1] = temp;
        }
    }
}