#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int a[10000000+5];
int n, m, key;
int fin(int i, int j) {
if(i>j) return -1;
int mid=(i+j)/2;
if(a[mid]==key) return mid-1;
if(a[mid]>key)
return fin(i,mid-1);
return fin(mid+1,j);
}
int main() {
while(~scanf("%d %d", &n, &m)) {
for(int i=1;i<=n;i++)
scanf("%d", &a[i]);
while(m--) {
scanf("%d", &key);
printf("%d\n", fin(1,n));
}
}
return 0;
}
#include <algorithm>
#include <cstdio>
using namespace std;
int a[10000000+5];
int n, m, key;
int fin(int i, int j) {
if(i>j) return -1;
int mid=(i+j)/2;
if(a[mid]==key) return mid-1;
if(a[mid]>key)
return fin(i,mid-1);
return fin(mid+1,j);
}
int main() {
while(~scanf("%d %d", &n, &m)) {
for(int i=1;i<=n;i++)
scanf("%d", &a[i]);
while(m--) {
scanf("%d", &key);
printf("%d\n", fin(1,n));
}
}
return 0;
}
本文介绍了一种使用二分查找算法进行元素搜索的C++实现方法。该算法在一个已排序的整数数组中查找指定元素的位置,并通过示例程序展示了如何输入数组及待查找的元素,最后输出查找结果。
678

被折叠的 条评论
为什么被折叠?



