数据结构上机实验之二分查找
Time Limit: 1000MS Memory limit: 65536K
题目描述
在一个递增的序列里,查找元素是否存在,若存在输出YES,不存在输出NO.
输入
本题多组数据,首先输入一个数字n,然后输入n个数,数据保证数列递增,然后再输入一个查找数字。
输出
若存在输出YES,不存在输出NO.
示例输入
4 1 3 5 8 3
示例输出
YES
提示
来源
cz
示例程序
1. #include<stdio.h>
2. int erfen(int a[],int s,int t,int key)
3. {
4. int low = s,high = t,mid;
5. if(s<=t)
6. {
7. mid = low + (high - low)/2;
8. if(a[mid] == key)
9. {
10. return mid;
11. }
12. if(a[mid]>key)
13. return erfen(a,low,mid-1,key);
14. else
15. return erfen(a,mid+1,high,key);
16. }
17. return -1;
18. }
19. int main()
20. {
21. int i,n,key,a[100001],w;
22. while(scanf("%d",&n)!=EOF)
23. {
24. for(i=0;i<n;i++)
25. {
26. "%d",&a[i]);
27. }
28. "%d",&key);
29. w = erfen(a,0,n-1,key);
30. if(w>=1)
31. {
32. "YES\n");
33. }
34. else
35. "NO\n");
36. }
37. return 0;
38. }