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

来源:互联网 发布:青岛学淘宝美工 编辑:程序博客网 时间:2024/05/16 12:16

题目描述

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

输入

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

输出

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

示例输入

41 3 5 83

示例输出

YES
#include<stdio.h>#include<string.h>#define N 100001int a[N];int main(){  int n,m,i,low,high,mid;  while(~scanf("%d",&n))  {   for(i=0;i<=n-1;i++)   {     scanf("%d",&a[i]);   }   scanf("%d",&m);   int flag=1;   low=0;   high=n-1;   while(low<high)   {     mid=(low+high)/2;     if(m==a[mid])     {      flag=0;       break;     }     else if(m<a[mid])     {     high=mid-1;     }     else     {      low=mid+1;     }   }   if(flag==0)   {     printf("YES\n");   }   else   {     printf("NO\n");   }  }  return 0;}


0 0
原创粉丝点击