二分查找判定元素是否存在
2016-08-16 13:23
316 查看
数据结构上机实验之二分查找
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
在一个递增的序列里,查找元素是否存在,若存在输出YES,不存在输出NO.
输入
本题多组数据,首先输入一个数字n(n>=100000),然后输入n个数,数据保证数列递增,然后再输入一个查找数字。
输出
若存在输出YES,不存在输出NO.
示例输入
4
1 3 5 8
3
示例输出
YES
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
在一个递增的序列里,查找元素是否存在,若存在输出YES,不存在输出NO.
输入
本题多组数据,首先输入一个数字n(n>=100000),然后输入n个数,数据保证数列递增,然后再输入一个查找数字。
输出
若存在输出YES,不存在输出NO.
示例输入
4
1 3 5 8
3
示例输出
YES
# include <stdio.h> int a[1000000]; bool Find(int n,int key); int main() { int n,key,i; bool flag = false; while((scanf("%d",&n))!=EOF) { for(i=0;i<n;i++) { scanf("%d",&a[i]); } scanf("%d",&key); flag = Find(n,key); if(flag) { printf("YES\n"); } else { printf("NO\n"); } } return 0; } bool Find(int n,int key) { int lowerBound = 0; int upperBound = n - 1; int midPoint = -1; bool exist = false; while(lowerBound <= upperBound) { midPoint = (lowerBound + upperBound)/2; if(a[midPoint] == key) { exist = true; break; } else if(a[midPoint] < key) { lowerBound = midPoint + 1; } else { upperBound = midPoint - 1; } } return exist; }
相关文章推荐
- C++二分查找在搜索引擎多文档求交的应用分析
- C语言编程中实现二分查找的简单入门实例
- C#二分查找算法实例分析
- 二分查找算法在C/C++程序中的应用示例
- 在MySQL中实现二分查找的详细教程
- Java实现二分查找算法实例分析
- JAVA冒泡排序和二分查找的实现
- Python基于二分查找实现求整数平方根的方法
- python二分查找算法的递归实现方法
- Python二分查找详解
- 简介二分查找算法与相关的Python实现示例
- python二分查找算法的递归实现方法
- Python基于二分查找实现求整数平方根的方法
- 漫谈递归:二分查找算法的递归实现
- 二分查找
- [LeetCode] Find Minimum in Rotated Sorted Array
- 折半查找法
- "二分查找(Binary Search)"与"斐波那契查找(Fibonacci Search)"
- 二分查找
- C#版二分查找(代碼)