编写查找函数D(),给定任意有序数列,然后输入任意一数,用折半查找法找出该数在数列中所在的位置。

若函数中有此数,则返回该数在数列中所在的位置;若数列中无此数,则返回-1.... 若函数中有此数,则返回该数在数列中所在的位置;若数列中无此数,则返回-1. 展开
 我来答
百度网友f9fe670
推荐于2018-02-28 · TA获得超过5522个赞
知道小有建树答主
回答量:642
采纳率:100%
帮助的人:229万
展开全部

提供一份C语言的代码供参考:

#include<stdio.h>
#include <stdlib.h>
 
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; /*Found*/
    }
    return -1;/*Not Found: 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("\n");
 system("pause");
 return 0;
}

 输出的位置信息是从0开始,希望能帮到你。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式