zoukankan      html  css  js  c++  java
  • Go排序练习

    1、插入排序

    类似扑克起牌,每起一张牌都按大小将牌放到合适的位置

    package main
    
    import "fmt"
    
    func insert(a [8]int) [8]int {
        for i := 1; i < len(a); i++ {
            for j := i; j > 0; j-- {
                if a[j] < a[j-1] {
                    a[j], a[j-1] = a[j-1], a[j]
                } else {
                    break
                }
            }
        }
        return a
    }
    
    func main() {
        var i [8]int = [8]int{45, 2, 5, 68, 3, 43, 7, 9}
        j := insert(i)
        fmt.Println(i)
        fmt.Println(j)
    }
    
    输出:
    [45 2 5 68 3 43 7 9]
    [2 3 5 7 9 43 45 68]

    2、选择排序

    选出最小的数字,排在第1位,第二小的,拍在第2位,以此类推

    package main
    
    import "fmt"
    
    func choose(a [8]int) [8]int {
        for i := 0; i < len(a); i++ {
            for j := i + 1; j < len(a); j++ {
                if a[j] < a[i] {
                    a[i], a[j] = a[j], a[i]
                }
            }
        }
        return a
    }
    
    func main(){
        var i [8]int = [8]int{45, 2, 5, 68, 3, 43, 7, 9}
        j :=choose(i)
    fmt.Println(i)
    fmt.Println(j)
    }

    输出:
    [45 2 5 68 3 43 7 9]
    [2 3 5 7 9 43 45 68]

    3、冒泡排序

    package main
    
    import "fmt"
    
    func bubble(a [8]int) [8]int {
        for i := 0; i < len(a); i++ {
            for j := 0; j < len(a)-i-1; j++ {
                if a[j] > a[j+1] {
                    a[j], a[j+1] = a[j+1], a[j]
                }
            }
        }
        return a
    }
    
    func main() {
        var i [8]int = [8]int{45, 2, 5, 68, 3, 43, 7, 9}
        j := bubble(i)
        fmt.Println(i)
        fmt.Println(j)
    }
    
    输出:
    [45 2 5 68 3 43 7 9]
    [2 3 5 7 9 43 45 68]
  • 相关阅读:
    poj 3666 Making the Grade
    poj 3186 Treats for the Cows (区间dp)
    hdu 1074 Doing Homework(状压)
    CodeForces 489C Given Length and Sum of Digits...
    CodeForces 163A Substring and Subsequence
    CodeForces 366C Dima and Salad
    CodeForces 180C Letter
    CodeForces
    hdu 2859 Phalanx
    socket接收大数据流
  • 原文地址:https://www.cnblogs.com/lamp01/p/10907444.html
Copyright © 2011-2022 走看看