Go-标准库-sort(一)

2023-04-22 09:16:06 浏览数 (1)

Go标准库中的sort包提供了各种排序算法的实现,可以用于对任何类型的切片进行排序。

sort包的常量

sort包中定义了一些常量,它们用于指定排序的顺序。常量包括:

SortDefault

默认排序顺序,可以是升序或降序,具体顺序由被排序的元素的类型决定。

SortAscending

升序排序。

SortDescending

降序排序。

sort包的函数

sort包提供了一些函数来排序切片。下面我们将逐一介绍这些函数。

func Sort(data Interface)

Sort函数对实现了sort.Interface接口的切片进行排序。接口中的Less方法定义了排序顺序,Swap方法交换两个元素的位置。

示例:

代码语言:javascript复制
package main

import (
    "fmt"
    "sort"
)

func main() {
    arr := []int{3, 1, 4, 1, 5, 9, 2, 6, 5, 3}
    sort.Ints(arr)
    fmt.Println(arr) // Output: [1 1 2 3 3 4 5 5 6 9]
}

上面的例子中,我们定义了一个整型切片,并使用sort.Ints函数对其进行排序。注意,我们并没有实现sort.Interface接口,而是使用了sort包提供的Ints函数。这个函数可以对int类型的切片进行排序,并且是默认的升序排序。

func Ints(a []int)

Ints函数对int类型的切片进行升序排序。

示例:

代码语言:javascript复制
package main

import (
    "fmt"
    "sort"
)

func main() {
    arr := []int{3, 1, 4, 1, 5, 9, 2, 6, 5, 3}
    sort.Ints(arr)
    fmt.Println(arr) // Output: [1 1 2 3 3 4 5 5 6 9]
}

func Float64s(a []float64)

Float64s函数对float64类型的切片进行升序排序。

示例:

代码语言:javascript复制
package main

import (
    "fmt"
    "sort"
)

func main() {
    arr := []float64{3.5, 1.1, 4.3, 1.9, 5.7, 9.0, 2.2, 6.4, 5.1, 3.8}
    sort.Float64s(arr)
    fmt.Println(arr) // Output: [1.1 1.9 2.2 3.5 3.8 4.3 5.1 5.7 6.4 9]
}
go

0 人点赞