问题描述:
插入排序的基本操作就是将一个数据插入到已经排序好的有序数列中,从而得到一个新的,个数加一的有序数列,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定排序算法。
package main
import "fmt"
func main() {
arr := insertionSort([]int{1, 4, 5, 6, 3})
fmt.Printf("result %v", arr)
}
func insertionSort(arr []int) []int {
for i := range arr {
perIndex := i - 1
current := arr[i]
for perIndex >= 0 && arr[perIndex] > current {
arr[perIndex + 1] = arr[perIndex]
perIndex --
}
arr[perIndex + 1] = current
}
return arr
}