1,插入排序

2021-09-26  本文已影响0人  dwq1666666

1,什么是插入排序?
就是假设手里拿这的是一副有序的牌,然后每次插入一张牌都去调整被改动的顺序
如:1 3 5 中插入2 则 2放在3的位置,3,5都往后挪动就是插入排序

2,程序实现:

package main

import (
    "fmt"
)

func main() {
    // 插入排序
    data := []int{5,2,4,6,1,3}
    insertSortDesc(data)
    fmt.Println(data)
}

// 插入排序 - 升序
func insertSort(data []int)  {

    for j := 1; j< len(data); j++ {
        // 获取当前值
        current := data[j]

        // 前n个都是有序的,现在需要做的是交换
        i := j-1
        for i >= 0 && data[i] > current {
            data[i+1] = data[i]
            i--
        }

        data[i+1] = current
    }

}

// 插入排序 - 降序
func insertSortDesc(data []int)  {

    for j := 1; j< len(data); j++ {
        // 获取当前值
        current := data[j]

        // 前n个都是有序的,现在需要做的是交换
        i := j-1
        for i >= 0 && data[i] < current {
            data[i+1] = data[i]
            i--
        }

        data[i+1] = current
    }

}
上一篇下一篇

猜你喜欢

热点阅读