在Go语言中,切片比数组更强大,灵活,方便,并且是轻量级的数据结构。切片是可变长度的序列,用于存储相似类型的元素,不允许在同一切片中存储不同类型的元素。
Go语言使您可以根据切片的类型对切片的元素进行排序。因此,使用以下函数对int类型切片进行排序。这些函数在sort包下定义,因此,您必须在程序中导入sort包才能访问这些函数:
1.整数:此函数仅用于对整数切片进行排序,并按升序对切片中的元素进行排序。
语法:
func Ints(slc []int)
在这里,slc表示一个整数。让我们借助示例来讨论这个概念:
示例
//对整数进行排序
package main
import (
"fmt"
"sort"
)
// Main function
func main() {
//使用简写声明,创建和初始化切片
scl1 := []int{400, 600, 100, 300, 500, 200, 900}
scl2 := []int{-23, 567, -34, 67, 0, 12, -5}
//显示切片
fmt.Println("Slices(Before):")
fmt.Println("Slice 1: ", scl1)
fmt.Println("Slice 2: ", scl2)
//对整数切片进行排序
//使用Ints函数
sort.Ints (scl1)
sort.Ints (scl2)
//显示结果
fmt.Println("\nSlices(After):")
fmt.Println("Slice 1 : ", scl1)
fmt.Println("Slice 2 : ",scl2)
}
输出:
Slices(Before):
Slice 1: [400 600 100 300 500 200 900]
Slice 2: [-23 567 -34 67 0 12 -5]
Slices(After):
Slice 1 : [100 200 300 400 500 600 900]
Slice 2 : [-34 -23 -5 0 12 67 567]
2. IntsAreSorted:此函数用于检查给定的int切片是否为排序形式(按升序排列)。如果切片为排序形式,则此方法返回true;否则,如果切片未为排序形式,则返回false。
语法:
func IntsAreSorted(scl []int) bool
此处,scl表示ints的一部分。让我们借助示例来讨论这个概念:
示例
//Go程序说明如何检查
//给定的int片是否已排序
package main
import (
"fmt"
"sort"
)
func main() {
//创建和初始化切片
//使用简写声明
scl1 := []int{100, 200, 300, 400, 500, 600, 700}
scl2 := []int{-23, 567, -34, 67, 0, 12, -5}
//显示切片
fmt.Println("Slices:")
fmt.Println("切片1: ", scl1)
fmt.Println("切片2: ", scl2)
//检查切片是否为排序形式
//使用IntsAreSorted函数
res1 := sort.IntsAreSorted(scl1)
res2 := sort.IntsAreSorted(scl2)
//显示结果
fmt.Println("\nResult:")
fmt.Println("切片1是否已排序?: ", res1)
fmt.Println("切片2是否已排序?: ", res2)
}
输出:
Slices:
切片1: [100 200 300 400 500 600 700]
切片2: [-23 567 -34 67 0 12 -5]
Result:
切片1是否已排序?: true
切片2是否已排序?: false