sort排序

sort排序

对象内排序

sort.Slice(list, func(i, j int) bool {
		return list[i].age< list[j].age
	})

字符串排序

方式一:
func reverse(str string) string {
    var result string
    strLen := len(str)
    for i := 0; i < strLen; i++ {
        result = result + fmt.Sprintf("%c", str[strLen-i-1])
    }
    return result
}

方式二:
func reverse2(str string) string {
    var result []byte
    tmp := []byte(str)
    length := len(str)
    for i := 0; i < length; i++ {
        result = append(result, tmp[length-i-1])
    }
    return string(result)
}

方式三:
func reverse13(s string) string {
	runes := []rune(s)
	for from, to := 0, len(runes)-1; from < to; from, to = from+1, to-1 {
		runes[from], runes[to] = runes[to], runes[from]
	}
	return string(runes)
}

切片排序

r := []int{5,2,6,10,3} // []int{}
sort.Ints(r)  // 升序
sort.Sort(sort.IntSlice(r)) //升序
fmt.Println(r) // [2 3 5 6 10]


a := []float64{5.5, 2.2, 6.6, 3.3, 1.1, 4.4}
sort.Float64s(a) // 升序
sort.Sort(sort.Float64Slice(a)) // 升序
fmt.Println(a) // [1.1 2.2 3.3 4.4 5.5 6.6]


s := []string{"PHP", "golang", "python", "C", "Objective-C"}
sort.Strings(s) // 字母开头升序
sort.Sort(sort.StringSlice(s)) //字母开头升序
fmt.Println(s) // [C Objective-C PHP golang python]

逆序:
func reverse(s []int) []int {
	for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
		s[i], s[j] = s[j], s[i]
	}
	return s
}
func main() {
	r := []int{5,2,6,10,3}
	k:=reverse(r) // 逆序
	fmt.Println(k) // [3 10 6 2 5]

	sort.Ints(r)  // 升序
	fmt.Println(r) // [2 3 5 6 10]

	k2:=reverse(r) // 逆序
	fmt.Println(k2) // [10 6 5 3 2]
}

posted @ 2023-10-06 22:22  Jeff的技术栈  阅读(6)  评论(0编辑  收藏  举报
回顶部