golang 学习(十四)选择排序和 冒泡排序以及sort的用法

620 阅读1分钟

选择排序和 冒泡排序以及sort的用法

选择排序

	var sliceNum = []int{1, 34, 7, 234, 9, 90}
	for i := 0; i < len(sliceNum); i++ {
		for j := i + 1; j < len(sliceNum); j++ {
			if sliceNum[i] > sliceNum[j] {
				temp := sliceNum[i]
				sliceNum[i] = sliceNum[j]
				sliceNum[j] = temp
			}

		}
	}
	fmt.Println(sliceNum) //[1 7 9 34 90 234]

冒泡排序

	var sliceNum1 = []int{1, 34, 7, 234, 9, 90}
	for i := 0; i < len(sliceNum1); i++ {
		for j := 0; j < len(sliceNum1)-1-i; j++ {
			if sliceNum1[j] > sliceNum1[j+1] {
				temp := sliceNum1[j]
				sliceNum1[j] = sliceNum[j+1]
				sliceNum1[j+1] = temp
			}
		}

	}
	fmt.Println(sliceNum1) //[1 9 34 90 234 234]

sort 方法排序升序

	import (
		"fmt"
		"sort"
	)
	var slice0 = []int{2,34,6,788,0}
	sort.Ints(slice0)
	var slice1 = []float64{2.00,3.4,6.56,7.88,0.22}
	sort.Float64s(slice1)
	var slice2 = []string{"a","x","w","m","n"}
	sort.Strings(slice2)
	fmt.Println(slice0,slice1,slice2) //[0 2 6 34 788] [0.22 2 3.4 6.56 7.88] [a m n w x]

sort降序

	var slice3 = []int{2,34,6,788,0}
	sort.Sort(sort.Reverse(sort.IntSlice(slice3)))
	var slice4 = []float64{2.00,3.4,6.56,7.88,0.22}
	sort.Sort(sort.Reverse(sort.Float64Slice(slice4)))
	var slice5 = []string{"a","x","w","m","n"}
	sort.Sort(sort.Reverse(sort.StringSlice(slice5)))
	fmt.Println(slice3,slice4,slice5) //[788 34 6 2 0] [7.88 6.56 3.4 2 0.22] [x w n m a]