21xrx.com
2024-05-20 13:31:17 Monday
登录
文章检索 我的文章 写文章
C++二分法
2023-07-14 19:59:21 深夜i     --     --
C++ 二分法 算法 查找 数组

C++是一种高级编程语言,它有许多强大的功能和功能,其中一个功能就是二分法。二分法是一种用于查找和排序数据的最常用算法,该算法的基本思想是将一个大问题分成两个较小的问题,然后重复这个过程直到找到所需的答案。

在C++中,使用二分法需要一些基本的知识,如如何定义数组、如何循环和如何使用条件语句。下面是一个简单的C++程序,它演示了如何使用二分法查找一个有序数组中的元素。

#include

using namespace std;

int main()

{

  int arr[] = 7;

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

  int target = 7;

  int left = 0;

  int right = n - 1;

  while (left <= right) {

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

    if (arr[mid] == target)

      cout << "Target found at index " << mid << endl;

      break;

     else if (arr[mid] < target) {

      left = mid + 1;

    } else

      right = mid - 1;

  }

  return 0;

}

这个程序首先定义一个有序数组arr,然后计算出数组的长度n和要查找的目标元素target。接下来,程序通过变量left和right定义了数组的边界,初始值分别为0和n-1。然后,程序进入一个while循环中,重复执行以下步骤,直到找到目标元素:

计算数组的中间值mid。

比较arr[mid]与target的大小关系。如果它们相等,表示目标元素已找到,输出它的索引值,并退出循环。

如果arr[mid]小于target,则说明目标元素在mid的右半部分,将left更新为mid+1。

如果arr[mid]大于target,则说明目标元素在mid的左半部分,将right更新为mid-1。

程序返回0,表示成功执行。

总的来说,C++二分法是一种非常有用的算法,用于查找和排序数据,同时非常容易实现。如果你在编程中需要查找有序数组中的元素,那么二分法是一种值得尝试的方法。

  
  

评论区

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