插入排序,代码如下:
package main
import (
"fmt"
)
func InsertSort(arr *[7]int) {
//完成第一次,给第二个元素找到合适的位置并插入
for i := 1; i < len(arr); i++ {
insertVal := arr[i]
insertIndex := i - 1 // 下标
//从小到大
for insertIndex >= 0 && arr[insertIndex] > insertVal {
arr[insertIndex+1] = arr[insertIndex] // 数据后移
insertIndex--
}
//插入
if insertIndex+1 != i {
arr[insertIndex+1] = insertVal
}
//fmt.Printf("第%d次插入后 %v\n",i, *arr)
}
}
func main() {
arr := [7]int{23, 0, 12, 56, 37, -1, 55}
fmt.Println("原始数组=", arr)
InsertSort(&arr)
fmt.Println("插入排序之后:",arr)
}
执行结果如下图: