问题 3705 --二分搜索(完善程序)

3705: 二分搜索(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 1761  解决: 1098
[提交][状态][命题人:]

题目描述

给定一组从小到大排好序的数(互不相同)

采用二分搜索方法找到给定数的位置

#include <bits/stdc++.h>
using namespace std;
int main()
{
	const int SIZE = 100;
	int n,f,i,left,right,middle,a[SIZE];
	cin>>n>>f;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	left=1;
	right=n;
	do
	{
		_____(1)_______
		if(f<=a[middle])
			right=____(2)_____;
		else
			left=_____(3)_____;
	}while(left<right);
	cout<<left<<endl;
}

输入

两个整数n和k

n表示一共有n个从小到大排好序的数的个数,n<=100

k表示要找的数

下面一行是n个从小到大排好序的数

输出

输出k所在的位置
样例输入
Copy
12 17
2 4 6 9 11 15 17 18 19 20 21 25
样例输出
Copy
7

提示

来源

[提交][状态]