一些知识点

一.

 lower_bound 与upper_bound

lower_bound算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。

upper_bound算法返回一个非减序列[first,last)中的第一个大于值val的位置。

eg:

int a[20]={1,2,2,3,4,4,4,4,5,6,7,9,9,10}

lower_bound(a,a+20,1)-a=0;

lower_bound(a,a+20,4)-a=4;

upper_bound(a,a+20,1)-a=1;

upper_bound(a,a+20,4)-a=8;

查找一个值的位置非常方便的方法,算法时间复杂度因为是二分,所以是O(logN),但需要是非减序列

 

posted @ 2017-03-06 15:45  kekit  阅读(111)  评论(0编辑  收藏  举报