插入排序其实和玩扑克牌时,拿到牌之后对牌整理顺序的思路是一样的,把后面比前面小的牌插入到前面去…
插入排序代码(Go语言):
package main
import "fmt"
func insertionSort(arr []int) []int {
for i := 1; i < len(arr); i++ {
for j := i; j >0; j--{
if arr[j] < arr[j-1] {
temp := arr[j-1]
arr[j-1] = arr[j]
arr[j] = temp
}
}
}
return arr
}
func main() {
arr := []int{8,6,2,3,1,5,7,4}
sortArr := insertionSort(arr)
fmt.Println(sortArr)
}
输出:
[1 2 3 4 5 6 7 8]
选择排序算法的时间复杂度是O(n^2)
空间复杂度是O(1)