21xrx.com
2024-11-22 03:20:18 Friday
登录
文章检索 我的文章 写文章
C++二分法代码实现
2023-07-13 06:27:38 深夜i     --     --
C++ 二分法 代码 实现

C++的二分法是一种常用的算法,用于快速查找一个有序数组中的目标元素。二分法的核心思想是不断将数组区间一分为二,只要目标元素在当前区间中,就继续缩小区间,直到找到目标元素为止。

下面是一段C++的二分法代码实现:


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

  while (left <= right) {

    int mid = left + (right - left) / 2; // 求中间位置

    if (nums[mid] == target) return mid; // 已找到目标元素

    else if (nums[mid] < target) left = mid + 1; // 目标元素在右侧区间

    else right = mid - 1; // 目标元素在左侧区间

  }

  return -1; // 未找到目标元素,返回-1

}

这段代码接收四个参数:目标元素`target`、有序数组`nums`、左端点`left`和右端点`right`。在while循环中,不断计算中间位置`mid`,并根据`nums[mid]`与`target`的大小关系,将区间不断缩小。

当找到目标元素时,返回该元素在数组中的下标;否则,返回-1表示未找到。

需要注意的是,在使用该函数之前,需要确保数组`nums`已经按照升序排列。如果数组未排序,可以使用`sort`算法对其进行排序。

总之,C++的二分法是一种简单而有效的算法,可以用于查找有序数组中的元素,其实现方式也非常简单。在实际应用中,需要根据具体情况进行调整,以便获得更好的性能和效果。

  
  

评论区

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