写一个函数BinarySeach,在包含n个元素的int数组a里查找元素p,如果找到,则返回元素下标,如果找不到,则返回-1
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
bool cmp(int a,int b){
return a<b;
}
int BinarySearch(int a[],int n,int p){
int l=0;
int h=n-1;
while(l<=h){
int mid=l+(h-l)/2;
if(a[mid]==p){
return mid;
}else if(a[mid]>p){
h=mid-1;
}else{
l=mid+1;
}
}
return -1;
}
int main(){
int n,p;
scanf("%d %d",&n,&p);
int a[n];
int i;
int t;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
sort(a,a+n,cmp);
t =BinarySearch(a,n,p);
if(t!=-1){
printf("%d",t);
}
else{
printf("NO");
}
}