怎样利用二分查找两个数组中相同的元素
1个回答
推荐于2016-10-16 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464988
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
#include <stdio.h>
void sort(int a[], int i,int num);
main()
{
int a[4]={2,3,4,5};
int num;
printf("请输入要查找的号码:");
scanf("%d",&num);
sort(a,4,num);
}
//二分法 a[]为数组,n为数组大小,num为要查找的数字
void sort(int a[],int n,int num)
{
int high,low,mid,flag = 1;
high=n-1;
low=0;
while(low<=high)
{
mid = (high+low)/2;
if(a[mid]<num)
{
low = mid+1;
}
else if(a[mid]>num)
{
high = mid -1;
}
else
{
printf("位置在第%d位:",mid+1);
printf("%d",a[mid]);
flag = 0;
break;
}
}
if(flag)
{
printf("无此数字");
}
}
void sort(int a[], int i,int num);
main()
{
int a[4]={2,3,4,5};
int num;
printf("请输入要查找的号码:");
scanf("%d",&num);
sort(a,4,num);
}
//二分法 a[]为数组,n为数组大小,num为要查找的数字
void sort(int a[],int n,int num)
{
int high,low,mid,flag = 1;
high=n-1;
low=0;
while(low<=high)
{
mid = (high+low)/2;
if(a[mid]<num)
{
low = mid+1;
}
else if(a[mid]>num)
{
high = mid -1;
}
else
{
printf("位置在第%d位:",mid+1);
printf("%d",a[mid]);
flag = 0;
break;
}
}
if(flag)
{
printf("无此数字");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询