您的位置:首页 > 理论基础 > 数据结构算法

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

2016-08-22 19:02 232 查看


题目描述

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


输入

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


输出

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


示例输入

4
1 3 5 8
3



示例输出

YES


提示

#include <stdio.h>

#include <stdlib.h>

int a[100000];
4000

void Search(int l,int r,int key)//二分查找函数;

{

    while(l<=r)

    {

        int m=(l+r)/2;

        if(a[m]==key)

          {

              printf("YES\n");

              return;

          }

        else if(a[m]>key)

            r=m-1;

        else

            l=m+1;

    }

    if(r<l)

        printf("NO\n");

}

int main()

{

  int n,i,key;

while(~scanf("%d",&n))

{

  for(i=0;i<n;i++)

    scanf("%d",&a[i]);

     scanf("%d",&key);

     Search(0,n-1,key);

}

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: