C++ 二分查找2025年3月17日 | 阅读 7 分钟 我们将讨论 C++ 编程语言中的二分查找。二分查找是一种通过不断将数组减半,然后从减半后的数组中查找指定元素来从已排序数组中查找给定元素的机制。这个过程一直持续到找到匹配项为止。它只适用于已排序的数据结构。二分查找算法的时间复杂度是 O (log n)。 ![]() 注意:要在 C++ 中执行二分查找技术,程序员或用户应确保给定数组必须按升序或降序排序。C++ 中二分查找的算法以下是执行 C++ 中二分查找的算法 在 C++ 中执行二分查找的步骤步骤 1:声明变量并按排序顺序(升序或降序)输入数组的所有元素。 步骤 2:将数组元素列表分成两半。 步骤 3:现在将目标元素与数组的中间元素进行比较。如果目标元素的值与中间元素匹配,则返回中间元素的位置并结束查找过程。 步骤 4:如果目标元素小于中间元素,我们将在数组的下半部分查找元素。 步骤 5:如果目标元素大于中间元素,我们需要在数组的后半部分查找元素。 步骤 6:我们将不断重复步骤 4、5 和 6,直到在已排序数组中找到指定的元素。 示例 1:使用二分查找从已排序数组中查找指定数字的程序 让我们编写一个程序,使用 C++ 编程语言中的二分查找从已排序数组中查找指定数字。 输出 Define the size of the array: 10 Enter the values in sorted array either ascending or descending order: Arr [0] = 12 Arr [1] = 24 Arr [2] = 36 Arr [3] = 48 Arr [4] = 50 Arr [5] = 54 Arr [6] = 58 Arr [7] = 60 Arr [8] = 72 Arr [9] = 84 Define a value to be searched from sorted array: 50 Element is found at index 5 示例 2:使用用户定义函数执行二分查找的程序 输出 Element is found at position 5 在上面的程序中,我们声明了一个数组 arr[] = {5, 10, 15, 20, 25, 30, 35, 40};然后我们指定数字 '25',使用二分查找方法从已排序数组中查找它。因此,我们创建了一个用户定义函数 bin_search(),它查找给定数字并返回语句 "Element is found at position 5"。如果数组中没有定义该数字,则 bin_search() 函数会显示 "Element is not found in the array." 示例 3:使用递归函数查找指定元素的程序 让我们创建一个示例,检查是否在递归函数内部使用二分查找在已排序数组中找到指定元素。 输出 Define the size of an array: 10 Arr [0] = 2 Arr [1] = 4 Arr [2] = 5 Arr [3] = 8 Arr [4] = 12 Arr [5] = 13 Arr [6] = 27 Arr [7] = 36 Arr [8] = 49 Arr [9] = 51 Enter an element to be searched in ascending array: 12 12 is available at position 6. 在上面的程序中,我们按升序输入了数组的所有元素,然后定义了一个数字作为目标元素 '12',它使用二分查找方法从已排序数组中查找。因此,我们创建了一个用户定义函数 binary_search(),它从数组中查找定义元素的位置并返回此位置可用的特定元素。如果元素在已排序数组中不可用,则返回 0。 下一主题C++ 与 JAVA 中的继承 |
编程中使用的两种流行的字符编码系统是 ASCII 和 Unicode。Unicode 可以表示超过 100,000 个字符,使用从 0 到 0x10FFFF 的码点,而 ASCII 只能表示 128 个字符,使用 7 位。当处理或显示 ASCII 中不存在的字符时...
5 分钟阅读
在本文中,我们将讨论 C++ 中的 std::ios::bad() 函数,包括其语法和示例。std::ios 类是 C++ 中每个标准输入/输出流的根类。它提供了许多标志来指示流的当前状态,其中一个标志是...
阅读 2 分钟
在 C++ 中,静态变量是一种变量,其生命周期延伸到程序的整个执行过程,但其作用域可以根据其定义位置进行限制。我们最近介绍了 static 关键字如何改变变量的行为,这确保了它的...
7 分钟阅读
在本文中,您将学习如何在 C++ 中自定义未捕获异常的终止行为。在 C++ 中,std::set_terminate 方法允许应用程序在未捕获异常发生时采取自定义响应。它使您能够指定一个唯一的处理程序,如果……
阅读 3 分钟
活动选择是一个组合优化问题。该问题可以表述如下:给定一组具有开始和结束时间的活动,选择一个人可以执行的最大数量的活动,假设一个人只能...
阅读 4 分钟
在本文中,我们将讨论适合初学者的最佳 C++ 游戏引擎。但在讨论最佳游戏引擎之前,我们必须了解游戏引擎。什么是游戏引擎?游戏引擎是一个专门的软件框架,旨在帮助创建和开发视频...
5 分钟阅读
在现代 C++ 语言中,我们可以使用属性来提高代码效率并减少程序员编写大量代码的时间。它们就像附加的条件,写在代码中,并且编译器会….
阅读 3 分钟
在本文中,我们将讨论 C++ 中用于竞争性编程的 10 个最常用的内置函数。C++ 内置函数介绍 C++ 中的集成功能通常称为通用库功能或通过 C++ 标准模板库 (STL) 提供的功能。这些功能涵盖了广泛的...
阅读9分钟
在本文中,我们将讨论带有不同方法的 C++ 哨兵线性搜索程序。但在讨论它们的实现之前,我们必须了解 C++ 中的哨兵线性搜索。什么是哨兵线性搜索?“哨兵线性搜索”是线性搜索的一个变体...
11 分钟阅读
在本文中,我们将讨论 C++ 和 Ruby 之间的区别。但在讨论这些区别之前,我们必须了解 C++ 和 Ruby。什么是 C++ 编程语言?C++ 是一个由 Bjarne Stroustrup 开发的高级、通用、面向对象的编程语言。它具有许多特性,例如...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India