考研数据结构(每日一题)day43

考研数据结构(每日一题)day43,第1张

考研数据结构(每日一题)

题目:折半查找的递归算法。初始调用时。low为1,high为ST.length。

算法思想:

根据查找的起始位置和终止位置,将查找序列一分为二,判断所查找的关键字在哪一部分,然后用新的序列的起始位置和终止位置递归求解。

完整代码:
typedef struct{    //查找表的数据结构
    ElemType *elem;  //存储空间地址,建表时按实际长度分配,0号留空
    int length;    //表的长度
}SSTable;
int BinSearchRec(SSTable ST,ElemType key,int low,int high){
    if(low > high){
        return 0;
    }
    mid - (low + high) / 2;  //取中间位置
    if(key > ST.elem[mid]){  //向后半部分查找
        Search(ST,key,mid + 1,high);
    }
    else if(key < ST.elem[mid]){  //向前半部分查找
        Search(ST,key,low,mid - 1);
    }
    else{
        return mid;  //查找成功
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/676166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存