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]

你可能感兴趣的:(GO基础4-切片排序算法)