2611: 分治策略-二分查找
金币值:3
定数:6
时间限制:1.000 s
内存限制:128 M
正确:4
提交:4
正确率:100.00% 命题人:
题目描述
已知一个有序的整数序列a1,a2,...an(从小到大,n<=20)和一个整数x ,查找x在该序列中的下标(如果被查找的元素是第1个元素,则返回0;如果被查找的元素找不到,则返回-1),要求用分治策略实现。
测试代码 复制
#include <stdio.h>
int binarySearch(int a[], int x, int left, int right) {
int mid;
if(left > right) {
return -1;
} else {
}
}
int main() {
int a[20],n,x,i,index;
scanf("%d", &n);
for(i = 0; i < n; i++ ) {
scanf("%d", &a[i]);
}
scanf("%d", &x);
index = binarySearch(a, x, 0, n-1);
printf("%d\n", index);
return 0;
}
输入格式
第1行输入一个正整数,表示n
第2行输入n个有序的整数
第3行输入一个整数,表示被查找的数
第2行输入n个有序的整数
第3行输入一个整数,表示被查找的数
输出格式
第4行输出查找元素所在的位置
输入样例 复制
5
1 2 3 4 5
3
输出样例 复制
2