c++二分法的正确使用姿势

   2024-10-05 9830
核心提示:二分法(Binary Search)是一种搜索算法,通过递归或循环地将搜索范围减半来查找目标元素。以下是C++中二分法的正确使用姿势:确

二分法(Binary Search)是一种搜索算法,通过递归或循环地将搜索范围减半来查找目标元素。以下是C++中二分法的正确使用姿势:

确保目标数组是有序的,因为二分法只适用于有序数组。

定义二分搜索函数,接受目标数组、目标元素和搜索范围作为参数。

在函数中定义两个指针,分别指向搜索范围的起始和结束位置。

在循环中,计算中间位置并检查中间元素与目标元素的关系。如果中间元素等于目标元素,则返回中间位置;如果中间元素大于目标元素,则更新结束指针为中间位置的前一个位置;如果中间元素小于目标元素,则更新起始指针为中间位置的后一个位置。

重复步骤4,直到找到目标元素或搜索范围为空。

如果目标元素不存在,则返回-1或其他指定的值。

以下是一个简单的示例代码:

int binarySearch(vector<int> arr, int target) {    int left = 0;    int right = arr.size() - 1;    while (left <= right) {        int mid = left + (right - left) / 2;        if (arr[mid] == target) {            return mid;        } else if (arr[mid] < target) {            left = mid + 1;        } else {            right = mid - 1;        }    }    return -1;}

以上代码演示了如何在一个有序数组中使用二分法查找目标元素。在实际应用中,可以根据具体情况进行修改和优化。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号