OC版二分查詢

2022-05-31 22:51:13 字數 620 閱讀 3095

二分查詢(也稱折半查詢)是很常見的一種在陣列中查詢資料的演算法,作為一名程式設計師是應該必須會的。它的基礎思想:獲取陣列的中間值,將陣列分割成兩份,利用中間值跟指定的值進行比較,如果中間值大於指定的值,就在陣列的左邊進行查詢;如果中間值小於指定值,就在陣列的右邊進行查詢。如此迴圈的執行下去,最終找到符合的值。

二分查詢優點:1.速度快 2.比較次數少 3.效能好  當然了,缺點也很明顯:1.必須是乙個有序的陣列(公升序或者降序) 2.適用範圍:適用不經常變動的陣列

上源**:

- (void

)viewdidload

- (int)compare:(nsarray *)array target:(int

)target

unsigned

int low = 0

; unsigned

int high = array.count - 1

;

while (low <=high)

else

if (num >target)else

}return -1;//

返回-1是沒找到

}

好了,簡單的介紹二分查詢,如果有錯誤,**以指正。

Pythonic版二分查詢

本文出自天外歸雲的 前提 公升序陣列,待查元素在陣列中。二分查詢 就是乙個遞迴函式c。待查元素a,當前陣列中位數b,如果b a則返回b的索引,b a則在b左側的子陣列中呼叫函式c,否則在b右側子陣列中呼叫函式c。第一次思考,按著上面的思路程式設計後的結果 def binary search inde...

Pythonic版二分查詢實現過程原理解析

更多程式設計教程請到 菜鳥教程 前提 公升序陣列,待查元素在陣列中。二分查詢 就是乙個遞迴函式c。待查元素a,當前陣列中位數b,如果b a則返回b的索引,b a則在b左側的子陣列中呼叫函式c,否則在b右側子陣列中呼叫函式c。第一次思考,按著上面的思路程式設計後的結果 def binary searc...

python版二分搜尋演算法

先用圖展示一下二分搜尋演算法的原理 二分搜尋演算法又稱為折半搜尋,下面 實現的是輸出要搜尋資料在陣列中的位置和查詢的次數 演算法的步驟 給乙個帶有n個值的陣列,陣列a是從小到大的排列 需要查詢t值在陣列的中的位置 1 先令l為0,r為n 1 2 如果存在l r,則不需進行搜尋 3 令m 中間元素 為...