题单:【算法1-6】二分查找与二分答案 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
1.STL函数
upper_bound(arr,arr+n,arr[i]+c);//arr是数组,n是数组中元素个数,如果从1开始那么可以写成(arr+1,arr+1+n,arr[i]+c)
lower_bound(arr,arr+n,arr[i]+c);//同上(可以查找大于等于arr[i]+c的第一个数所在的位置,并返回数组下标)
用法原理参考:C++ STL lower_bound()和upper_bound() - Tuple - 博客园 (cnblogs.com)
2.手打二分
原理参考:二分查找(折半查找)算法详解(C语言实现) (biancheng.net)
1 int find(int x) //二分查找 2 { 3 int l=1,r=n; 4 while (l<r) 5 { 6 int mid=l+(r-l)/2; 7 if (a[mid]>=x) r=mid; 8 else l=mid+1; 9 }
挺水的emmm
Comments NOTHING