21xrx.com
2024-11-08 22:15:04 Friday
登录
文章检索 我的文章 写文章
C++编程实现二分查找算法
2023-07-06 08:46:05 深夜i     --     --
C++ 二分查找算法 编程实现

二分查找算法是一个十分常用且高效的算法,可以快速查找一个有序数组中是否存在某个元素。在C++编程中,实现二分查找算法也十分简单。

二分查找算法的实现基本思路是:

1.定义一个左边界l、一个右边界r和一个中间值mid,其中l和r表示当前待查找区间的左右边界,mid表示当前待查找区间的中间值。

2.在待查找区间[l,r]内,不断计算mid的值,并将需要查找的元素与mid进行比较。

3.如果要查找的元素小于mid的值,则右边界r更新为mid-1,如果要查找的元素大于mid的值,则左边界l更新为mid+1。

4.不断重复步骤2和步骤3,直到要查找的元素被找到或者左边界l>右边界r。

以下是C++代码实现:


#include <iostream>

using namespace std;

int BinarySearch(int arr[], int n, int target) {

  int left = 0, right = n - 1;

  while (left <= right) {

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

    if (arr[mid] == target)

      return mid;

     else if (arr[mid] > target)

      right = mid - 1;

     else {

      left = mid + 1;

    }

  }

  // 如果没找到,返回-1

  return -1;

}

int main() {

  int arr[] = 5;

  int target = 3;

  int res = BinarySearch(arr, sizeof(arr) / sizeof(int), target);

  if (res == -1)

    cout << "未找到" << endl;

   else 下标为:" << res << endl;

  

  return 0;

}

在上述代码中,`BinarySearch()`函数是二分查找算法的实现,在程序中调用该函数来查找目标元素。

综上所述,二分查找算法是一种重要的查找算法,可在对数组进行查找时提高搜索效率,C++的代码实现也非常简单,大家可以用它进行实际的编程运用。

  
  

评论区

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