C++ 二分查找算法

#include<iostream>
using namespace std;

//二分查找法,查找一个数组的元素,并返回所在的位置的下标,
//必须要是一个有序的数组,
int select_arr(int arr[], int len, int arr_value)
{
    while (1)
    {
        int left = 0;  //数组的左侧下标
        int right = len-1; //数组的右侧下标
        while (left <= right)  
        {
            int mid = (left + right) / 2;  //定义中间位的下标
            int mid_value = arr[mid];  //定义中间值的基准值
            if (mid_value == arr_value)  //如果基准值正好等于要查找的值,则自动返回要找的位置
            {
                return mid;
            }
            //如果基准值大于要查找的值,表明值在左半边,新的查找范围为中间值-1位,也就是mid-1
            else if (mid_value > arr_value)
            {
                right = mid - 1;
            }
            //如果基准值小于要查找的值,表明值在右半边,新的查找范围为中间数+1位,也就是mid+1;
            else if (mid_value < arr_value)
            {
                left = mid + 1;
            }
        }
        return -1;
    }
}


int main()
{
    //定义一个int数组,并使用二分查找元素
    int arr[10] = { 1, 3, 5, 7, 9, 10, 16, 46, 88, 91 };

    int weizhi=select_arr(arr, 10, 16);


    return 0;
}

 

原文链接: https://www.cnblogs.com/shenji/p/12695102.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++ 二分查找算法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/341739

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午1:14
下一篇 2023年3月2日 上午1:14

相关推荐