二分法基本上學計算機的都聽過,但是有人不知道的就是其實二分法是減治法的思想。
所謂減治法和分治法有乙個主要差別就是減治法是減去一般,就是分治之後只需要解決原問題的一半就可以了得到全域性問題的解了。所以速度很快。
下面是二分法的遞迴程式和非遞迴程式和主測試程式:
[cpp]view plain
copy
print?
#include
#include
using
namespace
std;
template
<
typename
t>
intrecurbisearch(
const
vector&vt, t key,
intlow,
intup)
else
if(vt[mid]
return
mid;
} template
<
typename
t>
intiterbisearch(vector&vt, t key,
intlow,
intup)
return
-1;
} int
main()
執行結果:
二分法查詢 BinarySearch
前幾天參加2014阿里巴巴春季校招 測試開發崗 筆試,裡面有一道改錯題,就是給了乙個binary search的 結果這麼基礎的一題我還是沒能答全對.悲劇悲劇,這個水平注定去不了阿里.現在開始亡羊補牢.演算法 binarysearch 輸入 陣列a,起始索引begin,結束索引end,所查詢值val...
BinarySearch二分法查詢
二分法查詢思路比較簡單,對於乙個有序且無重複的序列,使用二分法查詢的時間複雜度為o lgn 效率很高,下面是二分法查詢的 實現,雖然 很簡單,但是一定要注意細節,做到輕鬆手寫二分查詢也是不錯的嘛。cpp實現 include include using namespace std int bs int...
二分法查詢BinarySearch
二分法查詢 又叫折半查詢,要求待查詢的序列有序。每次取中間位置的值與待查關鍵字比較,如果中間位置 的值比待查關鍵字大,則在前半部分迴圈這個查詢的過程,如果中間位置的值比待查關鍵字小,則在後半部分迴圈這個查詢的過程。直到查詢到了為止,否則序列中沒有待查的關鍵字。public class binarys...