使用線性搜尋查詢陣列中特定元素的首次出現位置的Go語言程式


在這篇Go語言文章中,我們將使用遞迴和迭代方法,查詢使用線性搜尋在陣列中特定元素的首次出現位置。

線性搜尋是一種簡單的搜尋演算法,它從列表或陣列的開頭開始,逐個檢查每個元素,直到找到目標值或搜尋完整個列表。它也稱為順序搜尋。

語法

func firstOcc(arr []int, target int) int {…}

firstOcc() 函式用於迭代地使用線性搜尋查詢陣列中特定元素的首次出現位置。它接受一個整數陣列和目標元素作為引數。

func firstOcc(arr []int, target int, index int) int {…}

firstOcc() 函式用於遞迴地使用線性搜尋查詢陣列中特定元素的首次出現位置。它接受一個整數陣列、目標元素和陣列的當前索引作為引數。

演算法

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

  • 步驟2 − 現在,建立一個 firstOcc() 函式,該函式使用線性搜尋查詢陣列中特定元素的首次出現位置。

  • 步驟3 − 它接受一個數組和一個目標元素作為輸入,並返回陣列中目標元素首次出現位置的索引。

  • 步驟4 − 如果陣列中未找到目標元素,則函式返回 -1。

  • 步驟5 − 它使用簡單的線性搜尋演算法從開頭遍歷陣列,並將每個元素與目標元素進行比較。如果找到,它將返回該元素的索引。

  • 步驟6 − 啟動 main() 函式。在 main() 函式內部,建立一個包含一些元素的陣列。

  • 步驟7 − 定義目標元素。

  • 步驟8 − 現在,呼叫 firstOcc() 函式並將陣列和目標元素作為引數傳遞給該函式。

  • 步驟9 − 此外,使用 fmt.Printf() 函式在螢幕上列印包含目標元素首次出現位置索引的結果訊息。

示例1

在這個示例中,我們將使用迭代方法定義一個 firstOcc() 函式,該函式用於使用線性搜尋查詢陣列中特定元素的首次出現位置。

package main

import "fmt"

func firstOcc(arr []int, target int) int {
   for i, v := range arr {
      if v == target {
         return i
      }
   }
   return -1
}

func main() {
   arr := []int{4, 8, 3, 2, 7, 4, 5, 9, 10}
   target := 9

   index := firstOcc(arr, target)
   if index == -1 {
      fmt.Printf("First Occurrence of element %d not found in array\n", target)
   } else {
      fmt.Printf("First Occurrence of element %d found at index %d\n", target, index)
   }
}

輸出

First Occurrence of element 9 found at index 7

示例2

在這個示例中,我們將使用遞迴方法定義一個 firstOcc() 函式,該函式用於使用線性搜尋查詢陣列中特定元素的首次出現位置。

package main

import "fmt"

func firstOcc(arr []int, target int, index int) int {
   if index >= len(arr) {
      return -1
   }
   if arr[index] == target {
      return index
   }
   return firstOcc(arr, target, index+1)
}

func main() {
   arr := []int{49, 23, 33, 14, 56, 46, 17, 28, 69, 10}
   target := 56

   index := firstOcc(arr, target, 0)
   if index == -1 {
      fmt.Printf("First Occurrence of element %d not found in array\n", target)
   } else {
      fmt.Printf("First Occurrence of element %d found at index %d\n", target, index)
   }
}

輸出

First Occurrence of element 56 found at index 4

結論

我們已經成功編譯並執行了一個Go語言程式,該程式使用遞迴和迭代方法,透過兩個示例查詢使用線性搜尋在陣列中特定元素的首次出現位置。在第一個示例中,我們使用了迭代方法;在第二個示例中,我們使用了遞迴方法。

更新於:2023年5月10日

瀏覽量:255

開啟你的職業生涯

完成課程獲得認證

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