21xrx.com
2025-02-16 22:12:36 Sunday
登录
文章检索 我的文章 写文章
C++编程实现二分查找算法
2023-06-29 02:57:29 深夜i     --     --
C++ 编程 二分查找算法

二分查找算法是一种高效的搜索方法,可以在有序数组中快速定位目标值。C++语言作为一种高性能的编程语言,可以很方便地实现二分查找算法。本文将介绍如何使用C++编程实现二分查找算法。

首先,需要了解二分查找算法的基本思路。在这种算法中,首先需要确定要查找的区间,通常是整个数组。然后,将查找范围缩小到左半部分或右半部分,直到找到目标值或找不到为止。具体的实现方法是:

1. 将数组按升序排列;

2. 定义左右边界 l 和 r,分别为第一个元素和最后一个元素的下标;

3. 计算中点 mid,即数组中位数的下标,可以使用如下代码实现:

  mid = (l + r) / 2;

4. 判断目标值与中点值的大小关系,如果相等则表示找到了目标值,返回中点下标;如果目标值小于中点值,则右边界移动到中点左侧一个位置,继续查找左半部分;如果目标值大于中点值,则左边界移动到中点右侧一个位置,继续查找右半部分;

5. 重复 3 和 4 步,直到找到目标值或查找范围为空,即左边界大于右边界。

如下是使用 C++ 语言实现二分查找算法的代码示例:


int binary_search(int arr[], int target, int len)

{

  int l = 0, r = len - 1, mid;

  while (l <= r)

  {

    mid = (l + r) / 2;

    if (arr[mid] == target)

      return mid;

    else if (arr[mid] > target)

      r = mid - 1;

    else

      l = mid + 1;

  }

  return -1;

}

这个函数接受三个参数:一个升序排列的整形数组 `arr`,要查找的目标值 `target` 和数组的长度 `len`。函数返回目标值在数组中的下标,如果目标值不在数组中则返回 -1。

总结来说,使用 C++ 编程实现二分查找算法并不复杂。了解基本思路和实现细节后,你也可以尝试编写自己的二分查找算法函数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复