GO基础4-切片排序算法

目录

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]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容