21xrx.com
2024-09-19 09:12:41 Thursday
登录
文章检索 我的文章 写文章
C++二分查找代码
2023-07-09 18:08:24 深夜i     --     --
C++ 二分查找 代码

C++是一种高效的编程语言,广泛应用于各种应用程序的开发中。其中,二分查找是一种常用的算法,用于在有序数组中查找目标元素的位置。下面介绍一种C++实现二分查找的代码。

首先,我们需要定义一个函数来实现二分查找。该函数需要三个输入参数:目标数组、目标元素、目标数组大小。函数的返回值为查找到的目标元素的下标。

int binarySearch(int arr[], int target, int size)

{

  int left = 0;

  int right = size - 1;

  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;

}

在该函数中,我们首先初始化左右指针,然后进行循环,直到左指针大于右指针。每次循环,我们通过左右指针计算中间位置的下标,如果找到目标元素,直接返回中间位置下标。否则,根据目标元素与中间元素的大小关系,移动左右指针的位置,以缩小查找范围。如果最终没有找到目标元素,返回-1表示查找失败。

例如,我们可以使用以下代码来测试上述函数的正确性:

int main()

{

  int arr[] = 4;

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

  int target = 7;

  int result = binarySearch(arr, target, size);

  if (result != -1)

    std::cout << "Target found at index " << result << std::endl;

  else

    std::cout << "Target not found" << std::endl;

  target = 11;

  result = binarySearch(arr, target, size);

  if (result != -1)

    std::cout << "Target found at index " << result << std::endl;

  else

    std::cout << "Target not found" << std::endl;

  return 0;

}

在以上测试中,我们定义了一个目标数组,并在其中查找两个目标元素分别为7和11。运行结果如下:

Target found at index 6

Target not found

可见,经过测试,该函数实现了二分查找的功能,并且能够正确识别查找失败的情况。

总之,二分查找是一种常用的算法,C++语言具有优秀的性能和强大的语法支持,能够为实现该算法提供充分的支持。通过上述代码的实例,我们可以了解C++实现二分查找的方法。

  
  

评论区

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