Go语言的sort包与排序算法
Go语言的sort
包提供了各种用于切片排序的函数。以下是一些使用sort
包进行排序的示例代码:
package main
import (
"fmt"
"sort"
)
func main() {
// 对整数切片进行排序
ints := []int{7, 2, 4, 1, 5, 9}
sort.Ints(ints)
fmt.Println(ints) // 输出:[1 2 4 5 7 9]
// 对字符串切片进行排序
strings := []string{"banana", "apple", "cherry"}
sort.Strings(strings)
fmt.Println(strings) // 输出:[apple banana cherry]
// 对自定义类型切片进行排序
type Person struct {
Name string
Age int
}
people := []Person{
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35},
}
// 按年龄排序
sort.Slice(people, func(i, j int) bool {
return people[i].Age < people[j].Age
})
fmt.Println(people) // 输出:[{Bob 25} {Alice 30} {Charlie 35}]
}
在这个例子中,我们展示了如何使用sort
包中的Ints
、Strings
和Slice
函数来对整数、字符串和自定义类型的切片进行排序。对于自定义类型的排序,我们提供了一个排序函数作为Slice
函数的参数。这个函数定义了切片元素的排序逻辑。
评论已关闭