美文网首页
GO基础4-切片排序算法

GO基础4-切片排序算法

作者: 一直吃不饱 | 来源:发表于2020-12-06 15:29 被阅读0次

    目录

    1、选择排序
    2、冒泡排序
    3、GO 内置Sort包对切片排序

    1.选择排序

    //找最小放前面
    var x = []int{9, 5, 6, 7, 8, 1}
    for i := 0; i < len(x); i++ {
        for j := i + 1; j < len(x); j++ {
            if x[i] > x[j] {
                temp := x[i]
                x[i] = x[j]
                x[j] = temp
            }
        }
    }
    fmt.Println(x) // [1 5 6 7 8 9]
    

    2.冒泡排序

    //从头到尾,比较相邻元素,符合条件,交换位置
    var x = []int{9, 5, 6, 7, 8, 1}
    for i := 0; i < len(x); i++ {
        for j := 0; j < len(x)-1; j++ {
            if x[j] > x[j+1] {
                temp := x[j]
                x[j] = x[j+1]
                x[j+1] = temp
            }
        }
    }
    fmt.Println(x) // [1 5 6 7 8 9]
    

    3.Sort包

    //import "sort"
    //升序排序
    intList := []int{5, 6, 8, 4}
    float8List := []float64{4.2, 3.2, 9.6, 8.8, 0.2, 15.2}
    stringList := []string{"b", "a", "c"}
    
    sort.Ints(intList)
    sort.Float64s(float8List)
    sort.Strings(stringList)
    
        //降序排序,采用 sort.Reverse 来调换
        //sort.Sort(sort.Reverse(sort.IntSlice(intList)))
        //sort.Sort(sort.Reverse(sort.Float64Slice(float8List)))
        //sort.Sort(sort.Reverse(sort.StringSlice(stringList)))
    
    fmt.Println(intList) // [4 5 6 8]
    fmt.Println(float8List) // [0.2 3.2 4.2 8.8 9.6 15.2]
    fmt.Println(stringList) // [a b c]
    

    相关文章

      网友评论

          本文标题:GO基础4-切片排序算法

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