Go語言程式:陣列排序


在本教程中,我們將學習如何編寫一個Go語言程式,使用三種不同的方法對陣列進行排序。

使用使用者自定義函式對整數陣列進行排序

以下程式碼演示瞭如何使用使用者自定義函式在Go語言中對陣列元素進行排序。

演算法

步驟 1 − 匯入fmt包。

步驟 2 − 定義一個名為sortArray()的函式,該函式將對給定的陣列進行排序。

步驟 3 − 將要排序的陣列作為引數傳遞給此函式。此函式使用兩個for迴圈遍歷陣列。

步驟 4 − 如果陣列的當前元素大於前一個元素,則需要交換它們的位置。

步驟 5 − 重複此過程,直到for迴圈遍歷所有陣列元素。返回新形成的陣列。

步驟 6 − 開始主函式。

步驟 7 − 初始化一個整數陣列並在螢幕上列印它。

步驟 8 − 呼叫sortArray()函式。

步驟 9 − 將函式返回的陣列儲存在一個名為result的變數中,並使用fmt.Println()函式在螢幕上列印它。

示例

package main
import "fmt"

// defining a sortArray function to sort the given array
func sortArray(arr [5]int) [5]int {
   for i := 0; i <= len(arr)-1; i++ {
      for j := 0; j < len(arr)-1-i; j++ {
         if arr[j] > arr[j+1] {
            arr[j], arr[j+1] = arr[j+1], arr[j]
         }
      }
   }
   return arr
}
func main() {
   arr := [5]int{50, 30, 20, 10, 40}
   fmt.Println("The unsorted array entered is:", arr)
   result := sortArray(arr)
   fmt.Println("The sorted array is:", result)
   fmt.Println()
   arr = [5]int{2, 8, 6, 3, 1}
   fmt.Println("The unsorted array entered is:", arr)
   result = sortArray(arr)
   fmt.Println("The sorted array is:", result)
}

輸出

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

The unsorted array entered is: [2 8 6 3 1]
The sorted array is: [1 2 3 6 8]

使用預定義函式按升序排序字串陣列

以下程式碼演示瞭如何在Go程式語言中對字串陣列進行排序。

語法

Sort.Strings(strs)

sort包中的Strings()函式接受要排序的字串陣列作為引數,並返回已排序的字串。

演算法

步驟 1 − 匯入fmt和sort包。

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

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

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

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

示例

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

輸出

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

結論

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

更新於: 2023年1月2日

5K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

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