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

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

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

题目描述

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

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

#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 和 f,

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

f 表示要找的数,

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

输出

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

提示

来源

[提交][状态]