二分法查找有序序列中第一个大于目标值的位置
程序员文章站
2024-03-16 14:35:10
...
与大于等于不同,此时输出的是r(被夹出来的位置)
#include<iostream>
#include<string>
#include<algorithm>
#include<bits/stdc++.h>
#include<stack>
#include<set>
#include<vector>
#include<map>
#include<queue>
#include<deque>
#include<cctype>
#include<unordered_set>
#include<unordered_map>
#include<fstream>
using namespace std;
int main(){
int n,p;
cin>>n>>p;
int sum=0;
vector<int>a;
for(int i=0;i<n;i++){
int x;
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end());
int l=0,r=n-1;
while(l<r){
int mid=l+(r-l)/2;
if(a[mid]>p){
r=mid;
}
else{
l=mid+1;
}
}
cout<<r;
return 0;
}
上一篇: 【Jquery】第四讲
推荐阅读
-
二分法查找有序数组中大于等于v的第一个数
-
二分法查找有序序列中第一个大于目标值的位置
-
C++实现LeetCode(34.在有序数组中查找元素的第一个和最后一个位置)
-
在排序数组中查找元素的第一个和最后一个位置、变形二分法
-
算法007:二分查找 请实现有重复数字的有序数组的二分查找,输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一
-
javascript 折半查找字符在数组中的位置(有序列表)_javascript技巧
-
javascript 折半查找字符在数组中的位置(有序列表)_javascript技巧
-
算法007:二分查找 请实现有重复数字的有序数组的二分查找,输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一
-
C++实现LeetCode(34.在有序数组中查找元素的第一个和最后一个位置)
-
二分法查找一个数字在有序增序数组中的位置