插入排序法
Posted 算法精解
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序法相关的知识,希望对你有一定的参考价值。
简介
func InsertSort(arr []int) {
var j int
for i := 1; i < len(arr); i++ {
// 取出一个未排序的数据
temp := arr[i]
for j = i - 1; j >= 0 && temp < arr[j]; j-- {
// 向后移动数据
arr[j + 1] = arr[j]
}
arr[j + 1] = temp
}
}
func TestInsertSort(t *testing.T) {
rand.Seed(time.Now().Unix())
var arr []int
for i := 0; i < 10; i++ {
temp := rand.Intn(1000)
arr = append(arr, temp)
}
originSort, origin := append([]int{}, arr...), append([]int{}, arr...)
sort.Ints(originSort)
insertSort.InsertSort(arr)
if !reflect.DeepEqual(originSort, arr) {
t.Errorf("Got %v for input %v; expected %v", arr, origin, originSort)
}
}
相关文章:
《零基础学算法第2版》4.6直接插入排序法
以上是关于插入排序法的主要内容,如果未能解决你的问题,请参考以下文章