21xrx.com
2024-11-25 06:06:52 Monday
登录
文章检索 我的文章 写文章
C++实现二分法算法的代码
2023-07-05 12:05:59 深夜i     --     --
C++语言 二分法算法 代码实现

二分法算法是一种高效的搜索算法,它可以在有序数组中快速找到需要查找的元素。而C++是一种强大的编程语言,拥有丰富的数据类型和函数库,可以轻松实现二分法算法。

以下是C++实现二分法算法的代码:


#include <iostream>

using namespace std;

int binarySearch(int arr[], int l, int r, int x)

{

  if (r >= l) {

    int mid = l + (r - l) / 2;

    if (arr[mid] == x)

      return mid;

    if (arr[mid] > x)

      return binarySearch(arr, l, mid - 1, x);

    return binarySearch(arr, mid + 1, r, x);

  }

  return -1;

}

int main()

{

  int arr[] = 4;

  int n = sizeof(arr) / sizeof(arr[0]);

  int x = 10;

  int result = binarySearch(arr, 0, n - 1, x);

  if (result == -1)

    cout << "Element is not present in array";

  else

    cout << "Element is present at index " << result;

  return 0;

}

在这个实现中,我们定义了一个名为 `binarySearch` 的函数,它接受四个参数:一个整型数组 `arr`,它的左边界 `l`,它的右边界 `r`,以及我们要查找的元素 `x`。

函数使用递归的方式进行查找,首先计算中间元素的位置 `mid`,如果该元素等于我们要查找的元素 `x`,则返回它的下标。如果该元素大于 `x`,则递归调用函数并在左半部分查找。如果该元素小于 `x`,则递归调用函数并在右半部分查找。如果没有找到返回 -1。

在 `main` 函数中,我们定义了一个整型数组 `arr` 和它的大小 `n`,以及要查找的元素 `x`。我们调用 `binarySearch` 函数来查找元素 `x` 在数组中的下标,如果找到则输出它的下标,否则输出“元素在数组中不存在”。

在实际项目中,我们可以根据需要对这个函数进行修改,比如传递不同的数据类型、使用迭代而不是递归等,以满足不同的需求。

  
  

评论区

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