Go语言插入排序--常见排序算法 北京golang培训

    /    2019-06-11

更多内容请关注微信公众号:oldboygo


插入排序

思路分析:在要排序的一切片中,假设前面的元素已经是排好顺序的,现在要把第n个元素插到前面的有序切片中,使得这n个元素也是排好顺序的。如此反复循环,直到全部排好顺序。

代码实现:

package main

import (
    "fmt"
)

var sli = []int{143546221663278367639}

func insertSort(sli []int) []int {
    len := len(sli)
    for i := 0; i < len; i++ {
        tmp := sli[i]
        //内层循环控制,比较并插入
        for j := i - 1; j >= 0; j-- {
            if tmp < sli[j] {
                //发现插入的元素要小,交换位置,将后边的元素与前面的元素互换
                sli[j+1], sli[j] = sli[j], tmp
            } else {
                //如果碰到不需要移动的元素,则前面的就不需要再次比较了。
                break
            }
        }
    }
    return sli
}

func main() {
    res := insertSort(sli)
    fmt.Println(res)
}


(0)

分享至