Swift程序 編寫遞歸線性搜索元素數組
線性搜索,也稱為順序搜索,是從列表或數組的開頭開始逐個比較每個元素,直到找到所需元素或搜索完整個列表或數組的搜索方式。愛掏網 - it200.com遞歸線性搜索則是應用遞歸方法實現線性搜索。愛掏網 - it200.com
在Swift編程語言中,我們可以編寫一個遞歸線性搜索元素數組的程序,以便快速找到需要的元素。愛掏網 - it200.com以下是一個簡單的示例代碼:
func linearSearch<T: Equatable>(_ arr: [T], _ x: T, _ i: Int) -> Int? {
if i >= arr.count {
return nil
} else if arr[i] == x {
return i
} else {
return linearSearch(arr, x, i+1)
}
}
let a = [10, 20, 30, 40, 50, 60, 70]
let x = 40
if let index = linearSearch(a, x, 0) {
print("Element \(x) found at index \(index)")
} else {
print("Element \(x) not found")
}
在上面的代碼中,我們定義了一個名為linearSearch的函數,該函數具有三個參數:元素數組、搜索元素和當前搜索索引。愛掏網 - it200.com函數首先檢查當前搜索索引是否超出數組長度。愛掏網 - it200.com如果是,則返回nil,表示元素未找到。愛掏網 - it200.com如果搜索元素與當前哈希表索引處的元素匹配,則返回索引。愛掏網 - it200.com否則,函數將遞歸再次調用自身,使用下一個索引遞歸調用。愛掏網 - it200.com
此遞歸過程將一直進行,直到找到所需元素或完全搜索整個數組。愛掏網 - it200.com
我們可以使用以下代碼測試我們的函數:
let a = ["apple", "banana", "orange", "kiwi"]
let x = "orange"
if let index = linearSearch(a, x, 0) {
print("Element \(x) found at index \(index)")
} else {
print("Element \(x) not found")
}
在這個測試用例中,我們使用一個字符串數組和一個字符串來測試我們的函數。愛掏網 - it200.com結果應該是“Element orange found at index 2”。愛掏網 - it200.com
遞歸線性搜索是一種常用的搜索算法,特別是當集合中的元素數量相對較小時,它的執行效率非常高。愛掏網 - it200.com在Swift編程語言中,我們可以很容易地編寫一個簡單的遞歸線性搜索元素數組的程序,以快速找到需要的元素。愛掏網 - it200.com
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。