Go語言程式:按降序排列陣列元素


在本教程中,我們將學習如何編寫一個Go語言程式,用於按降序排列陣列。在數學中,降序是指後續元素小於前一個元素的順序。

使用外部函式按降序排列陣列

在這個例子中,我們將學習如何編寫一個程式,使用使用者自定義函式按降序排列整數陣列。

演算法

步驟 1 − 匯入fmt包

步驟 2 − 定義一個函式sortDesc()來對給定陣列進行排序。此函式接受一個引數,即我們要排序的整數陣列。

步驟 3 − 該函式使用兩個for迴圈和if條件來對陣列進行排序。

步驟 4 − 使用第一個for迴圈迭代未排序的陣列,使用第二個for迴圈獲取陣列中存在的最小值。

步驟 5 − 然後使用一個臨時變數將較小的值放在較大的值之後。

步驟 6 − 開始main()函式。

步驟 7 − 初始化一個整數陣列並向其中儲存值。在螢幕上列印未排序的陣列。

步驟 8 − 然後我們需要呼叫sortDesc()函式,並將要排序的陣列作為引數傳遞給該函式。

步驟 9 − 儲存函式返回的陣列,並使用fmt.Println()函式在螢幕上列印它。

示例

下面的程式碼演示瞭如何在Go語言中按降序排列陣列元素。

package main
import "fmt"
func sortDesc(arr [5]int) [5]int {
   for i := 0; i < len(arr); i++ {
   for j := 1 + i; j < len(arr); j++ {
         if arr[i] < arr[j] {
            intermediate := arr[i]
            arr[i] = arr[j]
            arr[j] = intermediate
         }
      }
   }
   return arr
}
func main() {
   arr := [5]int{50, 30, 20, 10, 40}
   fmt.Println("The unsorted array entered is:", arr)
   array := sortDesc(arr)
   fmt.Println()
   fmt.Println("The final array obtained after sorting is:", array)
}

輸出

The unsorted array entered is: [50 30 20 10 40]

The final array obtained after sorting is: [50 40 30 20 10]

使用Ints()函式按降序排列陣列

下面的程式碼演示瞭如何在Go語言中使用預定義函式按降序排列整數陣列。

語法

sort.Sort(sort.Reverse(sort.IntSlice(arr)))

Ints()函式位於sort包中,用於對整數陣列進行排序。該函式接受未排序的整數陣列,並透過排序返回該陣列。Reverse()函式位於sort包中。此函式接受需要按反序排序的資料作為引數,並透過反轉其值返回陣列的切片。

演算法

步驟 1 − 匯入fmt和sort包。

步驟 2 − 開始main()函式。

步驟 3 − 初始化一個整數陣列並向其中儲存值。在螢幕上列印未排序的陣列。

步驟 4 − 現在我們需要呼叫sort包中的Ints()函式,並將要排序的陣列作為引數傳遞給該函式。

步驟 5 − arr陣列現在已排序。我們可以使用fmt.Println()函式在螢幕上列印它。

示例

package main
import (
   "fmt"
   "sort"
)
func main() {
   var arr = []int{9, 8, 7, 4, 5, 3}
   fmt.Println("Unsorted array of strings is", arr)
   sort.Sort(sort.Reverse(sort.IntSlice(arr)))
   fmt.Println("The above array is sorted and the result is:", arr)
}

輸出

Unsorted array of strings is [9 8 7 4 5 3]
The above array is sorted and the result is: [9 8 7 5 4 3]

使用StringSlice()方法按降序排列字串陣列

現在讓我們編寫一個程式,使用Go語言中的預定義函式按降序排列字串陣列。

語法

sort.Sort(sort.Reverse(sort.StringSlice(arr)))

StringSlice()函式位於sort包中,它接受要排序的字串陣列作為引數,並返回已排序的字串。Reverse()函式位於sort包中。此函式接受需要按反序排序的資料作為引數,並透過反轉其值返回陣列的切片。

演算法

步驟 1 − 匯入fmt和sort包。

步驟 2 − 開始main()函式。

步驟 3 − 初始化一個字串陣列並向其中儲存值。在螢幕上列印未排序的陣列。

步驟 4 − 現在我們需要呼叫sort包中的StringSlice()函式,並將要排序的陣列作為引數傳遞給該函式。

步驟 5 − arr陣列現在已排序。我們可以使用fmt.Println()函式在螢幕上列印它。

示例

package main
import (
   "fmt"
   "sort"
)
func main() {
   var arr = []string{"a", "b", "c", "d", "s"}
   fmt.Println("Unsorted array of strings is", arr)
   sort.Sort(sort.Reverse(sort.StringSlice(arr)))
   fmt.Println("The above array is sorted and the result is:", arr)
}

輸出

Unsorted array of strings is [a b c d s]
The above array is sorted and the result is: [s d c b a]

結論

我們已經成功編譯並執行了一個Go語言程式,用於按降序排列陣列,並附帶示例。

更新於:2023年1月2日

瀏覽量:549

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.