美文网首页
1,插入排序

1,插入排序

作者: dwq1666666 | 来源:发表于2021-09-26 17:11 被阅读0次

    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
        }
    
    }
    

    相关文章

      网友评论

          本文标题:1,插入排序

          本文链接:https://www.haomeiwen.com/subject/tpoqnltx.html