golang之直接插入排序

package main

import (
    "fmt"
)

func main() {
    var array = []int{50, 2, 45, 42, 6, 47, 23, 22, 15, 456, 15, 11, 30, 16, 13, 3}
    length := len(array)
    var j int
    //外循环:有多少个元素没有进行排序就循环多少次(第一次就把第一个数组元素(下标0)认为是已经排好序的,故从第二个元素(下标1)开始进行比较并插入到相应位置)
    for i := 1; i < length; i++ {
        temp := array[i] //哨兵
        for j = i - 1; j >= 0 && array[j] > temp; j-- {
            array[j+1] = array[j]
        }
        //一轮下来后哨兵元素应该放的位置
        array[j+1] = temp
    }
    fmt.Println(array)
}

猜你喜欢

转载自blog.csdn.net/phpduang/article/details/81516100