21xrx.com
2024-12-22 22:37:12 Sunday
登录
文章检索 我的文章 写文章
折半查找法的C++代码
2023-07-04 15:05:35 深夜i     --     --
折半查找法 C++ 代码

折半查找法又称二分查找法,是一种常见的查找算法。它适用于已排序的数组中查找某个特定的元素。它的基本思想是将数组一分为二,如果目标元素比数组中间的元素小,则查找左半部分,否则查找右半部分。重复这个过程,直到找到目标元素或者确定目标元素不存在。

下面是折半查找法的C++代码实现:


int binarySearch(int arr[], int left, int right, int target) {

  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。

这个函数使用了一个while循环来重复搜索的过程。在每次循环中,它计算出数组的中间位置,然后根据目标元素与中间元素的大小关系来决定搜索左半部分还是右半部分。如果中间元素等于目标元素,则找到了目标元素。否则,如果中间元素小于目标元素,则目标元素在右半部分,将左端点设置为mid+1。否则,目标元素在左半部分,将右端点设置为mid-1。

这个函数的时间复杂度为O(log n),比顺序查找法的时间复杂度O(n)要小得多。因此,在处理大规模数据时,折半查找法是一种更加有效的算法。

  
  

评论区

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