簡單演算法 二分查詢法

2022-08-31 12:12:11 字數 648 閱讀 3856

**

/**

* 二分查詢法

* @param

arr *

@param

searchkey

* @return

未找到返回-1 找到則返回該下標

*/public

int mybinarysearch(int arr,int

searchkey)} }

模型: 猜數字遊戲,例如:猜乙個100以內的數字(值為33),

第一回合,猜50,返回結果,您猜的數字大了 

第二回合,你會根據反饋的結果往小的方向猜,也就是(0~50)  ,或許會猜 25; 返回結果您猜小了

第三回合,你會根據結果去猜乙個25-50之間的數值,

第...n....回合 :根據反饋的結果越來越接近目標值(33)

解析: 

進入迴圈前  初始化中間座標curin 為陣列大小的中間值

第一次 找到陣列最中間的乙個數字,如果這個數小於要查詢的數   那麼將查詢範圍的最小座標 = 當前座標+1  ,否則將最大座標=當前座標-1

由此折中查詢,直到找到目標值

缺陷: 陣列內的元素必須排序後才能使用二分查詢法,根據元素排序的方式決定座標範圍  否則gameover

演算法 二分查詢法

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

查詢演算法 二分查詢法

二分查詢法是經典的入門演算法,以高效和廣泛應用而著稱.演算法是由靜態方法rank 實現的,它接受乙個整數鍵和乙個已經有序的int 陣列作為引數。如果該鍵存在於陣列中 則返回它的索引,否則返回 1。演算法使用兩個變數low 和high,並保證如果鍵在陣列中則它一定在 a low high 中,然後方法...

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

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