21xrx.com
2024-11-22 10:13:57 Friday
登录
文章检索 我的文章 写文章
C++代码实现二分查找
2023-06-23 05:04:59 深夜i     --     --
C++ 代码 二分查找 实现

二分查找是一种高效的查找算法,也称为折半查找。其基本思想是:在有序列表中,首先确定列表的中间位置,然后将待查元素与中间位置的元素进行比较,若相等则查找成功,否则将待查元素与中间元素比较,若待查元素大于中间元素,则在中间位置的右半部分继续查找,否则在左半部分查找,直至查找成功或者查找完整个列表。

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

1. 定义一个函数,函数名为 binary_search(),需要传入三个参数:有序数组,数组大小,待查元素(需要查找的数字)。

2. 在函数中,需要定义三个变量:左边界 left、右边界 right 和中间位置 mid。

3. 在 while 循环中,当左边界小于等于右边界时,循环:

a. 计算中间位置 mid,使用的方法是左边界 left 加上右边界 right 除以 2。

b. 如果数组中间位置的元素等于待查元素,则返回中间位置。

c. 如果待查元素小于中间位置的元素,则将右边界更新为中间位置减去 1。

d. 如果待查元素大于中间位置的元素,则将左边界更新为中间位置加上 1。

4. 如果在 while 循环中没有找到待查元素,则说明数组中不存在该元素,返回 -1。

下面是具体代码实现:


int binary_search(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) { // 如果待查元素大于中间位置的元素

      left = mid + 1; // 更新左边界

    } else // 如果待查元素小于中间位置的元素

      right = mid - 1; // 更新右边界

    

  }

  return -1; // 找不到元素,返回-1

}

以上就是 C++ 实现二分查找的代码。在实际应用中,会根据具体情况对代码进行一些改进,比如加入异常处理、排序等,以使算法更加稳定和高效。

  
  

评论区

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