Go語言程式:無需庫函式合併兩個整數陣列


Go語言中的陣列被定義為一種資料結構,用於在連續的記憶體位置儲存元素。陣列允許我們在恆定時間內搜尋和儲存元素。陣列使用從0開始到n-1的索引儲存元素,其中n是陣列的長度。

我們將使用兩種方法:第一種方法在程式的主體部分實現邏輯,第二種方法使用外部函式。

方法一:在主函式中使用for迴圈

這裡,我們將使用for迴圈遍歷陣列,並將兩個陣列的每個元素複製到新陣列中,然後在螢幕上列印最終陣列。

演算法

  • 步驟1 - 匯入允許我們在螢幕上列印任何內容的fmt包。

  • 步驟2 - 現在呼叫main()函式。

  • 步驟3 - 初始化兩個整數型別陣列並向其中儲存值。然後在螢幕上列印這兩個陣列。

  • 步驟4 - 將arr1的長度儲存在一個名為j的變數中。

  • 步驟5 - 初始化第三個空陣列,其長度是第一個和第二個整數型別陣列長度的和。

  • 步驟6 - 然後我們使用for迴圈遍歷第一個陣列,並將所有值儲存到arr3中。

  • 步驟7 - 同樣,遍歷第二個陣列,並在arr1的值之後將它的值儲存到arr3中。

  • 步驟8 - 為此,我們使用了變數j,並透過j的索引將值儲存到arr3中。

  • 步驟9 - 到現在為止,我們已經得到了一個包含第一個和第二個陣列元素的第三個陣列。

  • 步驟10 - 使用fmt.Println()函式在螢幕上列印此陣列。

示例

在這個例子中,我們將編寫一個Go語言程式,使用main()函式部分的for迴圈來合併兩個整數陣列。

package main
import "fmt"
func main() {
   arr1 := [4]int{1, 2, 3, 4}
   fmt.Println("The first array entered is:", arr1)
   arr2 := [4]int{5, 6, 7, 8}
   var j int = len(arr1)
   var arr3 [8]int
   fmt.Println("The second array entered is:", arr2)
   for i := 0; i < len(arr1); i++ {
      arr3[i] = arr1[i]
   }
   for i := 0; i < len(arr2); i++ {
      arr3[j] = arr2[i]
      j = j + 1
   }
   fmt.Println("The final array obtained after merging the first two arrays is:", arr3)
}

輸出

The first array entered is: [1 2 3 4]
The second array entered is: [5 6 7 8]
The final array obtained after merging the first two arrays is: [1 2 3 4 5 6 7 8]

方法二:使用外部使用者自定義函式

我們將建立的函式將接受兩個整數陣列作為引數,並在合併兩個陣列後返回最終陣列。

演算法

  • 步驟1 - 匯入允許我們在螢幕上列印任何內容的fmt包。

  • 步驟2 - 現在,建立一個名為mergeArrays()的函式來合併兩個陣列。此函式接受兩個陣列作為引數,並在合併它們後返回最終陣列。

  • 步驟3 - 在此函式內部,將arr1的長度儲存在一個名為j的變數中。然後初始化第三個空陣列,其長度是第一個和第二個整數型別陣列長度的和。

  • 步驟4 - 然後我們使用for迴圈遍歷第一個陣列,並將所有值儲存到arr3中。

  • 步驟5 - 同樣,遍歷第二個陣列,並在arr1的值之後將它的值儲存到arr3中。

  • 步驟6 - 為此,我們使用了變數j,並透過j的索引將值儲存到arr3中。

  • 步驟7 - 到現在為止,我們已經得到了一個包含第一個和第二個陣列元素的第三個陣列。

  • 步驟8 - 現在呼叫main()函式。在程式的main()部分,初始化兩個整數型別陣列並向其中儲存值。然後在螢幕上列印這兩個陣列。

  • 步驟9 - 現在,透過將兩個陣列作為引數傳遞給mergeArrays()函式,並將獲得的結果儲存在一個名為result的單獨變數中。

  • 步驟10 - 現在,使用fmt.Println()函式在螢幕上列印此result陣列。

示例

在這個例子中,我們將使用一個外部使用者自定義函式將給定的兩個整數數組合併到第三個陣列中。

package main
import "fmt"
func mergeArrays(arr1 [4]int, arr2 [4]int) [8]int {
   var arr3 [8]int
   var j int = len(arr1)
   for i := 0; i < len(arr1); i++ {
      arr3[i] = arr1[i]
   }
   for i := 0; i < len(arr2); i++ {
      arr3[j] = arr2[i]
      j = j + 1
   }
   return arr3
}
func main() {
   arr1 := [4]int{1, 2, 3, 4}
   fmt.Println("The first array entered is:", arr1)
   arr2 := [4]int{5, 6, 7, 8}
   fmt.Println("The second array entered is:", arr2)
   result := mergeArrays(arr1, arr2)
   fmt.Println("The final array obtained after merging the first two arrays is:", result)
}

輸出

The first array entered is: [1 2 3 4]
The second array entered is: [5 6 7 8]
The final array obtained after merging the first two arrays is: [1 2 3 4 5 6 7 8]

結論

我們已經成功編譯並執行了一個Go語言程式來合併兩個陣列,並附帶示例。我們在第一個程式中使用for迴圈在程式的main()部分合並兩個陣列到第三個陣列中,而在最後一個程式中,我們使用外部使用者自定義函式來實現結果。

更新於:2023年2月16日

瀏覽量:566

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告