二分法

来源:互联网 发布:h5万能表单系统源码 编辑:程序博客网 时间:2024/05/21 17:01

数据结构上机实验之二分查找

Time Limit: 1000MS    Memory limit: 65536K

题目描述

在一个递增的序列里,查找元素是否存在,若存在输出YES,不存在输出NO.

输入

本题多组数据,首先输入一个数字n,然后输入n个数,数据保证数列递增,然后再输入一个查找数字。

输出

若存在输出YES,不存在输出NO.

示例输入

41 3 5 83

示例输出

YES
思路:开始没有深入理解导致耽误了很多时间。自己写了一遍,明白错在了哪儿。
解答:
#include<stdio.h>int main(){int a,b[100001],c;int i;int q,w,m,p=0;while(scanf("%d",&a)!=EOF){p=0;for(i=0;i<a;i++)scanf("%d",&b[i]);scanf("%d",&c);q=0;w=a-1;while(w>=q){m=(q+w)/2;if(c<b[m])w=m-1;if(c>b[m])q=m+1;if(c==b[m]){p=1;break;}}if(p==1)printf("YES\n");elseprintf("NO\n");}return 0;}

0 0
原创粉丝点击