21xrx.com
2024-09-19 09:37:36 Thursday
登录
文章检索 我的文章 写文章
C++实现二分查找算法
2023-07-03 19:28:24 深夜i     --     --
C++ 二分查找算法 实现

二分查找算法,又称为折半查找,是一种非常高效的查找方法。它主要应用于顺序表和有序数组之中,其实现思路就是将有序数组或顺序表从中间分成两部分,判断待查找的元素是否在左边或者右边,不断缩小查找范围,直到找到目标元素位置。

C++作为一门面向对象的编程语言,在实现二分查找算法上有很大的优势。它可以通过定义一个查找函数来实现该算法。以下是一个二分查找的C++实现代码实例:


#include <iostream>

using namespace std;

int binarySearch(int arr[], int left, int right, int target) {

  while (left <= right) {

    int mid = left + (right - left) / 2;

    if (arr[mid] == target)

      return mid;

    

    if (arr[mid] < target) {

      left = mid + 1;

    }

    else

      right = mid - 1;

    

  }

  return -1;

}

int main() {

  int arr[] = 7;

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

  int target = 11;

  int res = binarySearch(arr, 0, n - 1, target);

  if (res == -1)

    cout << "元素不存在" << endl;

  

  else {

    cout << "元素在第" << res + 1 << "个位置" << endl;

  }

  return 0;

}

在上面的代码中,`binarySearch()`函数接收一个数组arr,以及一个左边界left和右边界right以及目标元素target。函数会在数组中使用二分查找算法查找目标元素的位置。如果找到,则返回元素位置;如果没有找到,则返回-1。

程序主函数中,我们定义了一个数组arr、一个数组长度n以及需要查找的目标元素target。我们使用`binarySearch()`函数来查找目标元素,如果找到,输出元素在数组中的位置;否则输出该元素不存在。

通过使用C++的面向对象编程特性,可以实现简洁高效的二分查找算法。该算法在处理大规模排序问题时可以节省大量时间和计算成本。

  
  

评论区

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