• Golang之排序算法


    冒泡排序

    package main
    
    //冒泡排序
    import "fmt"
    
    func bsort(a []int) {
        for i := 0; i < len(a); i++ {
            for j := 1; j < len(a)-i; j++ {
                if a[j] < a[j-1] {
                    a[j], a[j-1] = a[j-1], a[j]
                }
            }
        }
    }
    func main() {
        b := [...]int{8, 7, 5, 4, 3, 10, 15}
        bsort(b[:])
        fmt.Println(b)
    }

    选择排序

    package main
    
    import "fmt"
    
    //冒泡排序
    
    func ssort(a []int) {
        for i := 0; i < len(a); i++ {
            var min int = i
            for j := i + 1; j < len(a); j++ {
                if a[min] > a[j] {
                    min = j
                }
            }
            a[i], a[min] = a[min], a[i]
    
        }
    }
    
    func main() {
        b := [...]int{8, 7, 5, 4, 3, 10, 15}
        ssort(b[:])
        fmt.Println(b)
    }

    插入排序

    package main
    
    import "fmt"
    
    //冒泡排序
    
    func isort(a []int) {
        for i := 1; i < len(a); i++ {
            for j := i; j > 0; j-- {
                if a[j] > a[j-1] {
                    break
                }
                a[j], a[j-1] = a[j-1], a[j]
            }
        }
    }
    
    func main() {
        b := [...]int{8, 7, 5, 4, 3, 10, 15}
        isort(b[:])
        fmt.Println(b)
    }

    快速排序

    package main
    
    import "fmt"
    
    //快速排序
    
    func qsort(a []int, left, right int) {
        if left >= right {
            return
        }
        val := a[left]
        k := left
        //确定val所在的位置
        for i := left + 1; i <= right; i++ {
            if a[i] < val {
                a[k] = a[i]
                a[i] = a[k+1]
                k++
            }
        }
        a[k] = val
        qsort(a, left, k-1)
        qsort(a, k+1, right)
    }
    func main() {
        b := [...]int{8, 7, 5, 4, 3, 10}
        qsort(b[:], 0, len(b)-1)
        fmt.Println(b)
    }
  • 相关阅读:
    互联网原理
    正则表达式
    BOM对象
    事件
    DOM对象
    已有项目安装脚手架工具vite
    小程序订阅消息 多个模板id
    百度地图 InfoWindow上添加点击事件
    颜色渐变 Echarts 环形图
    js替换字符串中所有斜杠
  • 原文地址:https://www.cnblogs.com/pyyu/p/8205924.html
Copyright © 2020-2023  润新知