Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項

Go 語言切片排序

在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
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清