在Go語言中,切片比數(shù)組更強大,靈活,方便,并且是輕量級的數(shù)據(jù)結(jié)構(gòu)。切片是可變長度的序列,用于存儲相似類型的元素,不允許在同一切片中存儲不同類型的元素。
Go語言使您可以根據(jù)切片的類型對切片的元素進行排序。因此,使用以下函數(shù)對int類型切片進行排序。這些函數(shù)在sort包下定義,因此,您必須在程序中導(dǎo)入sort包才能訪問這些函數(shù):
1.整數(shù):此函數(shù)僅用于對整數(shù)切片進行排序,并按升序?qū)η衅械脑剡M行排序。
語法:
func Ints(slc []int)
在這里,slc表示一個整數(shù)。讓我們借助示例來討論這個概念:
//對整數(shù)進行排序 package main import ( "fmt" "sort" ) // Main function func main() { //使用簡寫聲明,創(chuàng)建和初始化切片 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) //對整數(shù)切片進行排序 //使用Ints函數(shù) sort.Ints (scl1) sort.Ints (scl2) //顯示結(jié)果 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:此函數(shù)用于檢查給定的int切片是否為排序形式(按升序排列)。如果切片為排序形式,則此方法返回true;否則,如果切片未為排序形式,則返回false。
語法:
func IntsAreSorted(scl []int) bool
此處,scl表示ints的一部分。讓我們借助示例來討論這個概念:
//Go程序說明如何檢查 //給定的int片是否已排序 package main import ( "fmt" "sort" ) func main() { //創(chuàng)建和初始化切片 //使用簡寫聲明 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函數(shù) res1 := sort.IntsAreSorted(scl1) res2 := sort.IntsAreSorted(scl2) //顯示結(jié)果 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