赞
踩
任务描述
题目描述:将n
个从小到大排序的整数(n<1000000
)从1~n
进行编号,并一个待查找的整数m
,请使用二分法进行查找。 ####相关知识(略) ####编程要求 根据提示,在右侧编辑器Begin-End
处补充代码。 输入 输入包括3
行,第一行为整数n
,第二行包括n
个整数,以空格分隔,第三行为整数m
。 输出 如果能够在序列中找到整数m
,则输出编号(如果存在多个编号,返回编号最小的),如果不存在,则输出None
。
测试说明
样例输入: 10
1 2 4 5 6 7 8 9 10 11
10
样例输出: 9
- #include<stdio.h>
- int main(void)
- {
- /*********Begin*********/
-
- int n,m,low,high,mid,i;
- scanf("%d",&n);
- int a[n];
- for(i=0;i<n;i++)
- {
- scanf("%d",&a[i]);
- }
- scanf("%d",&m);
- low=0;
- high=n-1;
- while(low<=high)
- {
- mid=(high+low)/2;
- if(m>a[mid])
- low=mid+1;
- else if(m<a[mid])
- high=mid-1;
- else if(m==a[mid])
- {printf("%d",mid+1);goto END;}
-
- }
- printf("None");
- END: ;
- /*********End**********/
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。