数据结构上机实验之二分查找
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
在一个递增的序列里,查找元素是否存在,若存在输出YES,不存在输出NO.
输入
本题多组数据,首先输入一个数字n(n>=100000),然后输入n个数,数据保证数列递增,然后再输入一个查找数字。
输出
若存在输出YES,不存在输出NO.
示例输入
4 1 3 5 8 3
示例输出
YES
提示
来源
cz
示例程序
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #define MAXN 100010
- int a[MAXN];
- int search(int a[], int n, int m)
- {
- int l=0, r=n-1;
- while(l<=r)
- {
- int mid=(l+r)/2;
- if(a[mid]>m)
- r=mid-1;
- else if(a[mid]<m)
- l=mid+1;
- else
- {
- return 0;
- }
- }
- return -1;
- }
- int main()
- {
- int n, re;
- while(~scanf("%d", &n))
- {
- for(int i=0;i<n;i++)
- scanf("%d", &a[i]);
- int m;
- scanf("%d", &m);
- re=search(a,n,m);
- if(re==0)
- printf("YES\n");
- else
- printf("NO\n");
- }
- return 0;
- }