21xrx.com
2024-09-20 00:11:50 Friday
登录
文章检索 我的文章 写文章
C++代码:二分查找算法
2023-07-04 18:05:32 深夜i     --     --
C++ 二分查找 算法 查找 排序

二分查找算法是计算机科学中的一种算法,又称为折半查找算法。它是一种在有序数组中查找某一特定元素的搜索算法。该算法每次从搜索区间的中间开始查找,如果中间元素正好是要查找的元素,则搜索结束。否则,如果比中间元素小,则在左侧继续搜索;如果比中间元素大,则在右侧继续搜索,直到找到该元素。如果最终没有找到该元素,则搜索失败。

下面是C++代码实现二分查找算法:


#include <iostream>

using namespace std;

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

 while (left <= right) {

  int mid = (left + right) / 2;  // 计算中间位置

  if (arr[mid] == target) 则返回位置

   return mid;

   else 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 = 7;

 int result = binary_search(arr, 0, n - 1, target);

 if (result == -1)

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

  else

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

 

 return 0;

}

以上代码中,`binary_search`函数接受一个数组、左右两个索引和目标元素作为参数,返回目标元素在数组中的位置。在函数内部,通过计算中间位置来进行搜索,直到找到目标元素或者搜索区间为空。如果没有找到目标元素,则返回-1。

总的来说,二分查找算法是一种高效的搜索算法,可以在有序数组中快速查找目标元素。通过实现该算法,我们可以更好地理解算法的设计思路和实现方法。

  
  

评论区

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