使用線性搜尋查詢陣列中最小元素的Go語言程式
在這篇Go語言文章中,我們將學習如何使用遞迴和迭代方法,透過線性搜尋在陣列中查詢最小元素。陣列是由相同資料型別元素組成的集合,這些元素排列在連續的記憶體塊中,並使用索引或下標訪問。
線性搜尋是一種簡單的搜尋演算法,它從列表或陣列的開頭開始,逐個檢查每個元素,直到找到目標值或搜尋完整個列表。它也稱為順序搜尋。
語法
func minFind(arr []int) int {…}
minFind()函式用於使用線性搜尋查詢陣列中的最小元素。它接受一個整數陣列作為引數,並使用線性搜尋返回最小元素。
func minFind(arr []int, n int) int {…}
minFind()函式用於使用線性搜尋查詢陣列中的最小元素。它接受一個整數陣列和陣列長度作為引數,並使用線性搜尋返回最小元素。
方法一
在這個例子中,我們將使用迭代方法定義一個minFind()函式,該函式用於使用線性搜尋查詢陣列中的最小元素。
演算法
步驟1 − 首先,我們需要匯入fmt包。
步驟2 − 現在,建立一個minFind()函式,該函式使用線性搜尋查詢陣列中的最小元素。
步驟3 − 首先,它將min變數初始化為陣列的第一個元素,然後使用for迴圈遍歷陣列。
步驟4 − 如果它找到任何小於當前最小值的數字,它會將min的值更新為該數字,並返回min的值。
步驟5 − 啟動main()函式。在main()函式中,建立一個包含一些元素的陣列。
步驟6 − 現在,呼叫minFind()函式並將陣列作為引數傳遞給函式。
步驟7 − 此外,最小元素使用fmt.Printf()函式列印到螢幕上。
示例
在下面的示例中,我們將建立一個Go語言程式,使用迭代方法透過線性搜尋查詢陣列中的最小元素。
package main
import "fmt"
func minFind(arr []int) int {
min := arr[0]
for _, num1 := range arr {
if num1 < min {
min = num1
}
}
return min
}
func main() {
arr := []int{20, 10, 45, 8, 12}
min := minFind(arr)
fmt.Printf("The minimum element in the array is: %d", min)
}
輸出
The minimum element in the array is: 8
方法二
在這種方法中,我們將使用遞迴方法定義一個minFind()函式,該函式用於使用線性搜尋查詢陣列中的最小元素。
演算法
步驟1 − 首先,我們需要匯入fmt包。
步驟2 − 現在,建立一個minFind()函式,該函式遞迴地使用線性搜尋查詢陣列中的最小元素。此函式接受整數陣列和陣列長度作為輸入。
步驟3 − 然後,定義基本情況:當陣列長度為1時,只需返回陣列的第一個元素。
步驟4 − 否則,對minFind()函式進行遞迴呼叫,將陣列長度減1,並將結果儲存在min變數中。
步驟5 − 然後,檢查陣列的最後一個元素是否小於min,如果是,則返回該值。
步驟6 − 最後,將min的值作為給定陣列中的最小元素返回。
步驟7 − 啟動main()函式。在main()函式中,建立一個包含一些元素的陣列。
步驟8 − 現在,呼叫minFind()函式並將陣列和陣列長度作為引數傳遞給函式。
步驟9 − 此外,最小元素使用fmt.Printf()函式列印到螢幕上。
示例
以下是使用遞迴方法透過線性搜尋查詢陣列中最小元素的Go語言程式
package main
import "fmt"
func minFind(arr []int, n int) int {
if n == 1 {
return arr[0]
}
min := minFind(arr, n-1)
if arr[n-1] < min {
return arr[n-1]
}
return min
}
func main() {
arr := []int{10, 23, 37, 19, 42}
min := minFind(arr, len(arr))
fmt.Printf("The minimum element in the array is: %d", min)
}
輸出
The minimum element in the array is: 10
結論
我們已經成功地編譯並執行了一個Go語言程式,該程式使用遞迴和迭代方法透過線性搜尋查詢陣列中的最小元素,並附帶兩個示例。在第一個示例中,我們使用了迭代方法,在第二個示例中,我們使用了遞迴方法。使用線性搜尋,將傳遞的陣列的最小元素作為結果列印到控制檯作為輸出。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP