1.二分查詢:
又稱為 折半查詢,二分查詢,適合對已經排序好的資料集合進行查詢,時間複雜度o(log2n),效率高。假設有一公升序的資料集合,先找出公升序集合中最中間的元素,將資料集合劃分為兩個子集,將最中間的元素和關鍵字key進行比較,,如果等於key則返回,如果大於關鍵字key,則在前乙個資料集合中查詢,否則在後乙個子集中查詢,直到找到為止,如果沒找到則返回-1;
2.演算法步驟描述:
(1)首先確定整個查詢區間的中間位置mid=(low+high)/2;
(2)用待查關鍵字值與中間位置關鍵字值進行比較;
若相等,則查詢成功;
若大於,則在後半個區域中繼續進行折半查詢。
若小於,則在前半個區域中繼續進行折半查詢。
查詢成功,返回關鍵字所在陣列下標,沒找到返回-1;
3.**:
#include
#include
//二分查詢非遞迴方式
二分查詢思想
二分查詢思想應用於對有序的陣列進行查詢操作。時間複雜度 二分查詢也稱為折半查詢,每次都能將查詢區間減半,這種折半特性演算法時間複雜度為o logn mid計算 有兩種計算中值mid的方式 l h可能出現加法溢位,也就是說加法的結果大於整形能夠表示的範圍。但是l和h都為正數,因此h l不會出現加法溢位...
二分查詢的思想
先看看leetcode兩道相關的題目,都是二分思想的應用。leetcode 35 leetcode 34 二分思想用一句話概況就是 一看就懂,一寫就廢 花了很長時間都沒有弄得懂,每個人都是不同的寫法,新手很難從中發現規律。其實二分查詢最重要的一句話就是 查詢範圍 如何確定查詢範圍?只要確定了查詢範圍...
二分查詢及遞迴的二分查詢
一 思路 二分查詢又名折半查詢,顧名思義是分成兩部分,每查詢一次資料減半,所以查詢起來會很快。但是二分查詢的條件是已經有序的資料。1 設定兩個變數i,j.為查詢的範圍,i一般為0,j一般為陣列長度減一 2 設定變數mid,mid為所查陣列範圍的中間位置,即mid i j 2 3 比較所要查詢的資料v...