2017-07-17 12:00:12
writer:pprp
題目:找到你想要的數的
**如下:
#include #includeusing
namespace
std;
intmain()
sort(a,a+n);
for(int i = 0 ; i < n ; i++)
intx;
unique(a,a+n);
cin >>x;
cout
<< lower_bound(a,a+n,x)-a +1
}
lower_bound()返回乙個 iterator 它指向在[first,last)標記的有序序列中可以插入value,而不會破壞容器順序的第乙個位置,而這個位置標記了乙個不小於value 的值。該函式為c++
stl內的函式。
所以如果需要取得某元素下標,需要先用sort函式進行排序,然後得到所需元素下標
常用的用法:
查詢某個元素可以這樣查詢
#include #includeusing
namespace
std;
intmain()
; sort(a, a+12
);
for(int i = 0 ; i < 12 ; i++)
cout
>n) return0;
}
如果找到這個元素那麼cha為1否則為0
用函式實現二分查詢法
define crt secure no warnings 1 include include int select int arr,int key,int left,int right 定義函式的返回值型別和函式的形參型別 else if arr mid key else return mid 返...
迭代二分查詢二分查詢
在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...
bsearch 函式(二分查詢)
原部落格 bseach 函式用於二分查詢。void bsearch const void key,const void base,size t nmem,size t size,int comp const void const void key為要查詢的數,base為該陣列,nmem為查詢長度 一...