用二分法查表法,查找从键盘输入的任意一个数,是否在下面的数据序列中。 1 3 5 7 9 11 13
1个回答
展开全部
#include<stdio.h>
bool Search(int a[],int start,int end,int m){
if(start==end&&a[start]==m)return true;
if(start==end&&a[start]!=m)return false;
if(m<a[(start+end)/2]) Search(a,start,(start+end)/2-1,m);
else
Search(a,(start+end)/2+1,end,m);
}
int main()
{
int a[]={1,3,5,7,9,11};
int m;
scanf("%d",&m);
if(Search(a,0,5,m))printf("yes\n");
else printf("not exist\n");
return 0;
}
bool Search(int a[],int start,int end,int m){
if(start==end&&a[start]==m)return true;
if(start==end&&a[start]!=m)return false;
if(m<a[(start+end)/2]) Search(a,start,(start+end)/2-1,m);
else
Search(a,(start+end)/2+1,end,m);
}
int main()
{
int a[]={1,3,5,7,9,11};
int m;
scanf("%d",&m);
if(Search(a,0,5,m))printf("yes\n");
else printf("not exist\n");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询