编写查找函数D(),给定任意有序数列,然后输入任意一数,用折半查找法找出该数在数列中所在的位置。
答案:1 悬赏:50
解决时间 2021-01-19 06:01
- 提问者网友:你给我的爱
- 2021-01-18 09:40
编写查找函数D(),给定任意有序数列,然后输入任意一数,用折半查找法找出该数在数列中所在的位置。
最佳答案
- 二级知识专家网友:人间朝暮
- 2021-01-18 10:45
提供一份C语言的代码供参考:
#include
#include
int BinarySearch(int A[], int X, int N)
{
int Low, Mid, High;
Low = 0; High = N - 1;
while(Low <= High)
{
Mid = (Low + High) / 2;
if(A[Mid] < X)
Low = Mid + 1;
else if(A[Mid] > X)
High = Mid - 1;
else
return Mid;
}
return -1;
}
int main()
{
int number[8]={12,15,24,45,51,78,84,95};
int size = sizeof(number)/sizeof(int);
int a;
scanf("%d",&a);
int result = BinarySearch(number,a,size);
printf("%d ",result);
printf("
");
system("pause");
return 0;
} 输出的位置信息是从0开始,希望能帮到你。
#include
#include
int BinarySearch(int A[], int X, int N)
{
int Low, Mid, High;
Low = 0; High = N - 1;
while(Low <= High)
{
Mid = (Low + High) / 2;
if(A[Mid] < X)
Low = Mid + 1;
else if(A[Mid] > X)
High = Mid - 1;
else
return Mid;
}
return -1;
}
int main()
{
int number[8]={12,15,24,45,51,78,84,95};
int size = sizeof(number)/sizeof(int);
int a;
scanf("%d",&a);
int result = BinarySearch(number,a,size);
printf("%d ",result);
printf("
");
system("pause");
return 0;
} 输出的位置信息是从0开始,希望能帮到你。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息