您的位置:首页 > 数据库

二分查找 先输入数据库的个数再一一录入数据 然后输入要查找对象的个数再一一录入对象 最后依次输出对象是否在数据库中的结论

2017-11-21 18:41 429 查看
#include<stdio.h>

#include<math.h>

int a[100000]={0};

int b[100000]={0};

int c[100000]={0};

int  main()

{

  int num;

  int n;

  int i;

  int left,right,middle;

  int sum;

  scanf("%d\n",&num);

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

  {

  if(i<num-1)

  {  

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

  }

  else

  {

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

  }

  }

  scanf("%d\n",&n);

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

  {

  if(i<n-1)

  {

    scanf("%d\n",&b[i]);

  }

  else

  {

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

  }

  } 

  sum=0;

  while(sum<=n)

    {

      left=0;

      right=num;

  while(left<=right)

  {

    middle=(left+right)/2;

    if(b[sum]==a[middle])

    {

      c[sum]=1;

      

      break;

    }

    else if(b[sum]>a[middle])

    {

    left=middle+1;

    }

    else if(b[sum]<a[middle])

    {

    right=middle-1;

    }

  }

  sum=sum+1;

    }

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

    {

        if(c[i]==0)

      {

      printf("No\n");

      }

      if(c[i]==1)

      {

      printf("Yes\n");

      }

    }

    return 0;

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