直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后将R[k..i-1]中的记录均后移一个位置,腾出k位置上的空间插入R[i]。
1.直接插入排序过程
![](https://i-blog.csdnimg.cn/blog_migrate/fb26f3d875f07d9821f1d459691139fa.png)
- 时间复杂度:O(n^2)
- 空间复杂度:O(1)
- 直接插入排序是稳定的排序算法
2.Go语言实现
func InsertionSort(arr []int,n int) {
for i := 1;i < n;i++ {
key := arr[i]
j := i - 1
for j >= 0 && arr[j] > key {
arr[j + 1] = arr[j]
j--
}
arr[j + 1] = key
fmt.Println(arr)
}
}