首先說明乙個前提,再用二分法進行查詢時,查詢物件的陣列必須是有序的,當你拿到乙個陣列之後,你可以先進行排序,然後再利用二分查詢
首先舉乙個簡單的例子,讓你猜一下100以內的乙個正整數n,怎麼快速的guess出來呢,首先先猜是不是50?如果猜大了,就往小的方面去guess,可以猜25…,如果猜小了,可以往大了方向guess,可以猜75,就這樣一步一步的接近正確的答案
來看第乙個例子
while迴圈
function
indexof
(arr,target,start,end)
else
if(target < arr[mid]
)else
} console.
log(start,end)
;return-1
;}let a =[0
,1,2
,3,4
,5,6
,383
,565];
console.
log(
indexof
(a,5))
;//列印結果為5
第一步宣告開始的值和結束的值,分別是0和陣列長度-
1第二步
宣告中間值mid=(start+end)/
2並取整數
第三步用while迴圈
如果我們要找的這個target>arr[mid],那說明target只可能在mid+
1~end之間,
意思就是猜小了,要往大的方向猜
如果我們要找的這個target1之間,意思就猜大了,得往小的方向猜
如果我們要找的這個target==arr[mid]
,那恭喜你,猜對了
在用二分法進行查詢時,查詢物件的陣列必須是有序的,即各陣列元素的次序是按其值的大小順序儲存的。其基本思想是先確定待查資料的範圍(可用 [left,right] 區間表示),然後逐步縮小範圍直到找到或找不到該記錄為止。二分法可以用遞迴或者迴圈的方式實現。 C 二分法查詢,遞迴二分法
用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...
python二分法查詢 Python 二分法查詢
二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...
二分法的使用
在看二分查詢之前,需要先強調一下,陣列和函式等價,即f x 等價於num x 都是對映關係,根據乙個x值可以得到唯一乙個函式值。這裡的函式不僅指數學函式,也值自定義的表現為y f x 的函式。二分查詢通常用來處理函式值單調,且容易判斷的問題。例如在有序陣列中查詢值。無論什麼形式的二分,整體思想都是將...