东南大学C++折半查找实例:查找21元素的过程

需积分: 0 13 下载量 187 浏览量 更新于2024-08-18 收藏 3.82MB PPT 举报
折半查找举例-东南大学C++何洁月 在这个C++教程中,作者何洁月通过实例讲解了折半查找算法在编程中的应用。折半查找,也称为二分查找,是一种在有序数组中快速查找特定元素的搜索算法。在这个例子中,目标是在一个已排序的整数序列中查找值为21的元素。查找过程遵循以下步骤: 1. 首先,设置两个指针L(low)和H(high),初始时L为序列的第一个元素的索引,H为最后一个元素的索引。 2. 计算中间索引M,M = INT((L+H)/2)。在给定的序列中,这个公式用于找到当前搜索区间的一半。 3. 检查中间元素的值是否等于目标值21。如果是,返回该位置;如果不是,则根据比较结果调整搜索范围:如果中间元素大于目标值,将H设为M-1,否则将L设为M+1。 4. 重复步骤2和3,直到找到目标值或搜索区间为空。 提供的代码示例展示了如何在`9-1.c`至`9-5.c`等C++程序中实现折半查找,同时也涉及到了其他C++概念: - **分支结构**:通过`if`语句和`else`语句来控制程序的流程,如`MSDN: Operator Precedence and Associativity`提到的优先级和结合性规则。 - **循环结构**:包括`for`、`while`等循环结构,用来在满足条件时重复执行代码块,如`《计算机程序设计基础》P58图3.4`所示的循环结构实例。 - **结构体和联合体**:`struct aircraft`定义了一个表示飞机的结构体,其中包含`wingspan`和`passengers`等成员,以及一个无名联合体,用于实现某种特定功能,如交换函数`fiddle`。 - **函数与类**:强调了函数(如`get_volume`)和类的使用,通过封装数据和行为,实现了面向对象编程的特性。函数可以封装特定功能,而类则封装了相关的数据和行为,可以有构造函数、成员函数(如`inline`关键字的使用)以及析构函数,以确保对象在合适的时候释放资源。 - **面向对象编程**:以对象为中心,强调数据和操作数据的分离,以及自顶向下、逐步细化的设计原则。面向对象还涉及到对象间的交互,通过外部接口(如函数调用)和访问权限控制。 这些C++代码片段不仅展示了折半查找的运用,还涵盖了C++编程的基本概念和结构,有助于学习者理解和实践C++编程技巧。