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


在本教程中,我們將學習如何編寫一個 Go 語言程式,用於按升序排列陣列。

使用使用者自定義函式按升序排列陣列

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

演算法

步驟 1 − 匯入 fmt 包。

步驟 2 − 定義一個函式 sortArray() 來排序給定的陣列。

步驟 3 − 將引數傳遞給 sortArray() 函式,其中一個是我們要排序的整數陣列,另外兩個變數用於儲存臨時值。

步驟 4 − 使用 for 迴圈和 if 條件來排序陣列。第一個 for 迴圈用於遍歷未排序的陣列。

步驟 5 − 第二個 for 迴圈用於獲取陣列中存在的最小值。然後透過使用一個臨時變數,我們將較小的值放在較大的值之後。

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

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

步驟 8 − 然後我們需要呼叫 sortArray() 函式,並將要排序的陣列以及 temp 和 min 整數型別變數傳遞給它。

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

示例

package main
import "fmt"
func sortArray(arr [5]int, min int, temp int) [5]int {
   for i := 0; i <= 4; i++ {
      min = i
      for j := i + 1; j <= 4; j++ {
         if arr[j] < arr[min] {
         
            // changing the index to show the min value
            min = j
         }
      }
      temp = arr[i]
      arr[i] = arr[min]
      arr[min] = temp
   }
   return arr
}
func main() {
   arr := [5]int{50, 30, 20, 10, 40}
   fmt.Println("The unsorted array entered is:", arr)
   var min int = 0
   var temp int = 0
   array := sortArray(arr, min, temp)
   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: [10 20 30 40 50]

使用排序函式對整數陣列進行排序

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

語法

sort.Ints(arr)

Ints 函式存在於 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.Ints(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: [3 4 5 7 8 9]

使用切片方法按升序排列字串陣列

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

語法

sort.Sort(sort.StringSlice(arr))

StringSlice() 函式存在於 sort 包中,它將要排序的字串陣列作為引數,並返回排序後的字串。

演算法

步驟 1 − 匯入 fmt 和 sort 包。

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

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

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

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

示例

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

輸出

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

結論

我們已經成功編譯並執行了一個 Go 語言程式,用於按升序排列陣列,並附帶示例。在第一個示例中,我們使用了使用者自定義函式,在第二個示例中,我們使用了 Sort() 的內建函式,在第三個示例中,我們使用了另一種切片方法。

更新於: 2023年1月2日

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

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