C++二分查找算法演示代码

C++二分查找算法演示代码,第1张

概述C++二分查找算法演示代码

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

#include <cstdio>/* * 传统的二分查找,数组有序且没有重复 */int binary_S(int *a,int n,int key){    int l = 0,r = n-1;    int mID;    while (l <= r){        mID = (l + r) >> 1;        if (a[mID] == key)            return mID;        if (a[mID] > key)            r = mID - 1;        else            l = mID + 1;    }    return -1;}/* * 找出等于key且下标最小的值的下标,输入数组有序 */int binary_S2(int *a,r = n-1;    while (l < r){        int mID = (l + r) >> 1;        if (a[mID] >= key)            r = mID;        else            l = mID + 1;    }    if (a[r] == key)        return r;    return -1;}/* * 找出等于key且下标最大的值的下标,输入数组有序 */int binary_S3(int *a,r = n-1;    while (l < r){        int mID = (l + r + 1) >> 1;        if (a[mID] <= key)            l = mID;        else            r = mID - 1;    }    if (a[l] == key)        return l;    return -1;}/* * 找出一个先递增后递减数列的最大值 */int binary_S4(int *a,int n){    int l = 0,r = n-1;    int mID;    while (l <= r){        mID = (l + r) >> 1;        if (mID > 0 && a[mID-1] > a[mID])            r = mID - 1;        else if (mID < n-1 && a[mID+1] > a[mID])            l = mID + 1;        else            return a[mID];    }}

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的C++二分查找算法演示代码全部内容,希望文章能够帮你解决C++二分查找算法演示代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: https://outofmemory.cn/langs/1231976.html

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

发表评论

登录后才能评论

评论列表(0条)

保存