二分查找求改Orz
  • 板块学术版
  • 楼主liulechen
  • 当前回复17
  • 已保存回复17
  • 发布时间2024/12/1 14:24
  • 上次更新2024/12/1 17:02:17
查看原帖
二分查找求改Orz
768259
liulechen楼主2024/12/1 14:24
#include<bits/stdc++.h>
using namespace std;
int m,n,arr[1000086],k;
int cha(int x){
	int mid=m/2,l=1,r=m;
	while(mid!=1 && mid!=m){
		if(arr[mid]==x){
			return mid;
		}
		if(arr[mid]>x){
			r=mid;
			mid--;
			mid=(mid+l)/2;
		}
		if(arr[mid]<x){
			l=mid;
			mid++;
			mid=(mid+r)/2;
		}
	}
	return -1;
}
int main(){
	cin>>m>>n;
	for(int i=1;i<=m;i++) cin>>arr[i];
	for(int i=0;i<n;i++){
		cin>>k;
		cout<<cha(k)<<" ";
	}
	return 0;
}
2024/12/1 14:24
加载中...