查詢演算法 二分查詢法

2021-09-17 04:36:25 字數 569 閱讀 8916

二分查詢法是經典的入門演算法,以高效和廣泛應用而著稱.

演算法是由靜態方法rank() 實現的,它接受乙個整數鍵和乙個已經有序的int 陣列作為引數。如果該鍵存在於陣列中

則返回它的索引,否則返回-1。演算法使用兩個變數low 和high,並保證如果鍵在陣列中則它一定在

a[low…high] 中,然後方法進入乙個迴圈,不斷將陣列的中間鍵(索引為mid)和被查詢的鍵比較。

如果被查詢的鍵等於a[mid],返回mid;否則演算法就將查詢範圍縮小一半,如果被查詢的鍵小於

a[mid] 就繼續在左半邊查詢,如果被查詢的鍵大於a[mid] 就繼續在右半邊查詢。演算法找到被查詢

的鍵或是查詢範圍為空時該過程結束。

基礎形式:

public

static

intrank

(int key,

int[

] a)

return-1

;//返回-1意味著在陣列中沒有找到該鍵

}

在arrays類中已經內建了二分查詢的方法binarysearch(陣列,int key);

演算法 二分查詢法

例題 設計乙個函式,接收乙個有序陣列和乙個元素,如果指定的元素包含在陣列中,則返回其位置。看見這道題,我們正常的想法為遍歷陣列的所有元素然後乙個乙個的與數值相比較,如果相等,返回索引,如果在迴圈執行完後沒有退出函式的話,就返回false。為 var count 0 計數 function looku...

查詢演算法 二分查詢法 折半查詢

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。大家都應該玩過猜數字的遊戲吧?給定乙個數字的範圍 1 100 隨機抽取乙個數字,然後玩家輪流猜數字,猜錯時告訴玩家結果數字是大於猜測數字還是小於....

二分查詢演算法c語言 演算法總結 二分查詢法

在leetcode的題目討論中,經常會有些大神將某一類的題目結題思路給整理了出來,感覺受益匪淺。受之啟發,萌生了自己也總結一下常見演算法的解題思路的想法,希望可以讓自己在這個總結的過程中可也融匯貫通這些思路,同時可以給後來者以啟發。從 開始好呢?就從經典的二分查詢法開始吧,這個演算法幾乎所有學過計算...