STL二分查詢演算法

2021-09-25 19:23:14 字數 725 閱讀 5926

主要是2個東西:lower_bound和upper_bound的用法

1)lower_bound

int p=

lower_bound

(a,a+n,x)

-a;//在已排陣列a中尋找x的位置

易知其含義:是尋找大於或等於x的第乙個位置

int a[7]

=;sort

(a,a+7)

;int

*p=lower_bound

(a,a+7,

5);cout<<

*p<<

","5,1

2)upper_bound

其含義:尋找大於x的第乙個位置

int a[7]

=;sort

(a,a+7)

;int

*p=upper_bound

(a,a+7,

5);cout<<

*p<<

","7,3

ps:如果找的數不在其陣列範圍內,那麼輸出排序後的最後乙個數

在上面的基礎上

cout<<

*upper_bound

(a,a+7,

13)21

stl 二分查詢

在stl中對二分查詢進行了封裝,有兩種 upper bound,lower bound。例如 pos lower bound a,a n,value 查詢value值在長度為n的陣列a中的位置 關於返回值,函式lower bound 在first和last中的前閉後開區間進行二分查詢,返回大於或等於...

STL 二分查詢

實現原始碼 1.在乙個遞增的陣列 或vector 中查詢元素屬於 s e 的下標 2.查詢遞增陣列中元素是否存在 使用binary search 注 對於結構體,要麼過載小於符號 bool operator 要麼定義有小於符號含義的cmp函式。3.應用在遞減序列中 include include i...

STL中提供 二分查詢演算法

stl包含四種不同的二分查詢演算法,binary search lower bound upper bound equal range.他們作用的range是已sorted。binary search試圖在已排序的 first,last 中尋找元素value。如果 first,last 內有等價於v...