用現成函式進行二分查詢

2022-03-16 13:18:54 字數 827 閱讀 6780

2017-07-17 12:00:12

writer:pprp

題目:找到你想要的數的

**如下:

#include #include 

using

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 #include 

using

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為查詢長度 一...