跳到內容

程式設計基礎/陣列搜尋

來自華夏公益教科書,開放的書籍,開放的世界

線性搜尋或順序搜尋是一種在列表中查詢目標值的方法。它按順序檢查列表中的每個元素,直到找到匹配項,或者直到所有元素都已搜尋過。[1]

查詢陣列中的特定成員意味著搜尋陣列,直到找到該成員。該成員可能不存在,程式設計師必須在他的演算法邏輯中處理這種可能性。

“線性搜尋是一個非常簡單的演算法。它有時被稱為順序搜尋,它使用迴圈來按順序遍歷陣列,從第一個元素開始。它將每個元素與正在搜尋的值進行比較,並在找到該值或遇到陣列末尾時停止。如果正在搜尋的值不在陣列中,該演算法將搜尋到陣列的末尾。”[2]

可以對陣列中的最大值(最大值)或最小值(最小值)進行兩種特定的線性搜尋。最大值和最小值也稱為最大值和最小值。請注意,以下最大值和最小值函式假設陣列大小>=1。

虛擬碼

[編輯 | 編輯原始碼]
Function Main
    Declare Integer Array ages[5]
    Declare Integer maximum
    Declare Integer minimum
    
    Assign ages = [49, 48, 26, 19, 16]

    Assign maximum = max(ages)
    Assign minimum = min(ages)

    Output "Maximum age is: " & maximum
    Output "Minimum age is: " & minimum
End

Function max (Integer Array array)
    Declare Integer maximum
    Declare Integer index
    
    Assign maximum = array[0]
    For index = 1 to Size(array) - 1
        If maximum < array[index] 
            Assign maximum = array[index] 
        End 
    End 
Return Integer maximum 

Function min (Integer Array array) 
    Declare Integer minimum 
    Declare Integer index 

    Assign minimum = array[0] 
    For index = 1 to Size(array) - 1 
        If minimum > array[index]
            Assign minimum = array[index]
        End
    End
Return Integer minimum
Maximum age is: 49
Minimum age is: 16

關鍵詞

[編輯 | 編輯原始碼]
線性搜尋
使用迴圈來按順序遍歷陣列。
最大值
"max" 是最大值的縮寫,表示陣列中最大的成員。
最小值
"min" 是最小值的縮寫,表示陣列中最小的成員。

參考文獻

[編輯 | 編輯原始碼]
  1. 維基百科:線性搜尋
  2. 託尼·加迪斯、朱迪·沃爾特斯和戈弗雷·穆甘達,《C++ 早期物件入門第六版》(美國:皮爾遜 - 培生,2008)559。
華夏公益教科書