c++ primer 當中對二分搜尋是這樣闡述的:
使用迭代器完成二分搜尋的例程如下:
//text必須有序
//begin和end表示我們搜尋的範圍
auto begin = text.begin();
auto end = text.end();
auto mid = text.begin() + (end - begin) / 2; //初始狀態下的中間點
//當還有元素尚未檢查並且我們還沒有找到sought時執行迴圈
while(mid != end && *mid != sought)
上述程式,初始化狀態下是在名為text的vector中進行搜尋,定義了三個迭代器,begin、end、mid。下面對auto做一點說明。
auto是c++11標準引入的型別說明符,用auto可以使編譯器替我們分析表示式所屬的型別。auto讓編譯器通過初始值來推算變數的型別。例程中text.begin()返回型別即為迭代器。
使用迭代器進行二分搜尋
我的主力部落格 半畝方塘 使用迭代器進行二分搜尋是迭代器運算的乙個經典案例之中的乙個,二分搜尋是指在給定的 有序序列 中查詢某個想要的元素的過程 舉個樣例,假設所給的有序序列為 3。5。6,8,11。24,33 第一種情況,所給的有序序列中有我們搜尋的元素。譬如我們要搜尋的元素是 24 這個有序序列...
二分搜尋 C 實現
超詳細講解 給大佬膝蓋 源 include using namespace std void print arry int a int n cout int binarysearch int a int x,int n 輸入陣列 待查詢元素x,陣列大小n return 1 int main cout...
迭代法二分搜尋
include include include include using namespace std static int x 1 int main else 向後分 mid beg end beg 2 if mid end 如果中分數的位置超過迭代器末尾的下一位置,返回非,此時已經遍歷整個佇列,...