21xrx.com
2024-11-05 14:55:14 Tuesday
登录
文章检索 我的文章 写文章
C++递归二分查找代码
2023-07-05 00:46:17 深夜i     --     --
C++ 递归 二分查找 代码

二分查找是一种高效的查找算法,适用于有序的数据集合。在大数据量的情况下,使用二分查找可以显著提高查找效率。在实际应用中,经常需要对数据进行查找操作,因此掌握二分查找算法是非常重要的。

下面是C++递归二分查找代码:


#include<iostream>

using namespace std;

int BiSearch(int array[], int low, int high, int key)

{

  int mid;

  if (low > high)

    return -1;//找不到返回-1

  else

  {

    mid = (low + high) / 2;

    if (key == array[mid])

      return mid;

    else if (key < array[mid])

      return BiSearch(array, low, mid - 1, key);

    else if (key > array[mid])

      return BiSearch(array, mid + 1, high, key);

  }

}

int main()

{

  int array[] = 9;

  int index;

  int key = 8;

  index = BiSearch(array, 0, 9, key);

  if (index == -1)

    cout << "没有找到" << endl;

  else

    cout << "找到了,位置是" << index + 1 << endl;

  return 0;

}

这里通过递归的方式实现了二分查找。在递归函数中,先根据low、high计算mid,然后判断key的值与array[mid]的大小关系,如果相等,则返回mid;如果key小于array[mid],则在左半边继续查找;如果key大于array[mid],则在右半边继续查找。如果low > high,则找不到,返回-1。

在main函数中,定义一个数组和查找的关键字,然后调用递归函数进行查找。查找结果的处理根据返回值进行,如果返回-1,则表示没有找到,否则返回的是关键字在数组中的位置。

总的来说,通过C++递归二分查找代码的实现,可以快速高效地查找有序数据集合中的指定元素,非常方便实用。

  
  

评论区

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