人生第一篇部落格和大家分享一下上週周賽的一道題目二分查詢
題目如下:
e - 二分查詢(一)
蒜頭君手上有個長度為 n的陣列 a。由於陣列實在太大了,所以蒜頭君也不知道陣列裡面有什麼數字,所以蒜頭君會經常詢問整數 x是否在陣列 a 中。
輸入格式
第一行輸入兩個整數 n和 m,分別表示陣列的長度和查詢的次數。接下來一行有 n個整數 。接下來 m 行,每行有 1個整數 x,表示蒜頭君詢問的整數。
輸出格式
對於每次查詢,如果可以找到,輸出"yes",否則輸出"no"。
**解題思路 :**從題目就可以敏銳的注意到 二叉搜尋樹這個知識點又因為這是存數查詢。所以我就用到了 stl庫里的 set 。
**如下:
#include
#include
using
namespace std;
intmain()
for(
int i=
0;i)else
}return0;
}
這裡要注意幾點: 乙個是set 的標頭檔案 #include不能忘 另乙個是函式a.find()的用法 如果查詢的值在set集合裡會返回這個值否則則返回 a.end(). c stl 二分查詢
binary search a,a n,key 返回是否存在值bool型的 lower bound a,a n,key 下面兩個都是指標型的 upper bound a,a n,key 公升序排列的容器 lower bound const key type key 返回乙個迭代器,指向鍵值 key的...
C STL 二分查詢
自 二分查詢的函式有 3 個 參考 c lower bound 和upper bound lower bound 起始位址,結束位址,要查詢的數值 返回的是數值第乙個出現的位置。upper bound 起始位址,結束位址,要查詢的數值 返回的是數值最後乙個出現的位置。binary search 起始...
迭代二分查詢二分查詢
在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...