使用插入排序法對陣列進行降序排序的Go語言程式


插入排序是一種簡單的排序演算法,其工作方式類似於整理手中撲克牌的方式。陣列被虛擬地分成已排序和未排序兩部分。從未排序陣列中選擇元素,並將其放置到未排序陣列中的正確位置,最終使陣列排序。在這裡,我們將學習使用Go語言程式設計中插入排序對陣列進行降序排序的不同方法。

語法

func append(slice, element_1, element_2…, element_N) []T

append函式用於向陣列切片新增值。它接受多個引數。第一個引數是要新增值的陣列,後面跟著要新增的值。然後,該函式返回包含所有值的最終陣列切片。

func make ([] type, size, capacity)

Go語言中的make函式用於建立陣列/對映,它接受要建立的變數型別、大小和容量作為引數,並返回可以儲存在變數中的切片。

演算法

  • 步驟1 − 首先,我們需要匯入fmt包。

  • 步驟2 − 然後,我們需要啟動main()函式。在這個函式內部,使用make()函式初始化一個整數陣列,並使用append()函式為其賦值。

  • 步驟3 − 然後,我們需要使用fmt.Println()函式在螢幕上列印陣列。然後使用for迴圈遍歷陣列並將陣列的當前元素儲存在一個名為key的臨時變數中。初始化一個新變數,並透過遞減索引為其賦值。

  • 步驟4 − 現在,使用for迴圈檢查當前元素是否大於前一個元素。

  • 步驟5 − 如果滿足條件,則交換這兩個值,並在該內迴圈中遞減當前索引。

  • 步驟6 − 重複此過程,直到遍歷整個陣列,然後在螢幕上列印最終獲得的陣列。

  • 步驟7 − 現在,啟動main()函式,初始化一個數組,併為其儲存值。在螢幕上列印陣列。(例如2)

  • 步驟8 − 現在,透過將陣列作為引數呼叫insertionSort()函式,並將結果儲存在一個名為result的新陣列中。(例如2)

  • 步驟9 − 在螢幕上列印獲得的陣列。

示例1

在這個例子中,我們將編寫一個Go語言程式,使用插入排序法對整數陣列進行降序排序。

package main
import "fmt"
func main() {
   // initializing an array
   arr := make([]int, 0, 5)
   arr = append(arr, 5, 2, 4, 6, 1, 3)
   fmt.Println("The given array is: ", arr)
   for i := 1; i < len(arr); i++ {
      key := arr[i]
      j := i - 1
      for j >= 0 && arr[j] < key {
         arr[j+1] = arr[j]
         j = j - 1
      }
      arr[j+1] = key
   }
   fmt.Println("Sorted Array in Descending Order: ", arr)
}

輸出

The given array is:  [5 2 4 6 1 3]
Sorted Array in Descending Order:  [6 5 4 3 2 1]

示例2

在這個例子中,我們將展示如何使用外部使用者定義函式使用插入排序法對陣列進行降序排序。我們建立的函式接受要排序的陣列作為引數,並返回最終排序的陣列作為結果,我們可以在螢幕上列印該結果。

package main
import "fmt"
func insertionSort(arr []int) []int {
   for i := 1; i < len(arr); i++ {
      key := arr[i]
      j := i - 1
      for j >= 0 && arr[j] < key {
         arr[j+1] = arr[j]
         j = j - 1
      }
      arr[j+1] = key
   }
   return arr
}

func main() {
   // initializing an array
   arr := make([]int, 0, 5)
   arr = append(arr, 5, 2, 4, 6, 1, 3)
   fmt.Println("The given array is: ", arr)
   res := insertionSort(arr)
   fmt.Println("Sorted Array in Descending Order:", res)
}

輸出

The given array is:  [5 2 4 6 1 3]
Sorted Array in Descending Order: [6 5 4 3 2 1]

結論

我們已經成功編譯並執行了一個Go語言程式,使用插入排序法對陣列進行降序排序,並附帶示例。我們在這裡使用了兩個例子,一個使用程式的main()部分,另一個使用外部函式。

更新於:2023年2月16日

瀏覽量:599

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告