插入排序
# LeetCode-插入排序
插入排序算法回顾
示例1
输入: nums = [4,0,1,2,0,5]
输出: [0,0,1,2,4,5]
1
2
2
1
2
2
# 解题思路
插入排序算法回顾
插入排序是一种简单直观的排序算法,其基本原理是通过构建有序序列,对未排序的数组,需要在已排序的序列中从后向前进行扫描,找到相应位置并插入。在从后向前扫描的过程中,需要反复把已排序的元素向后移动,为新元素提供插入的空间。
插入排序是稳定的排序算法,时间复杂度O(n^(1-2))
# 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;
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
编辑 (opens new window)
上次更新: 2022/11/18, 11:15:10
- 01
- SpringCache基本配置类05-16
- 03
- Rpamis-security-原理解析12-13