第2章_数据结构与算法_第5节_查找和排序

时间:2025-04-20

软件技术基础

Section 5 Search & Sort (查找和排序 查找和排序) 查找和排序

第1页

软件技术基础

学习内容与要求 学习和掌握顺序查找和折半查找算法的原理和 实现; 实现; 学习和掌握二叉排序树的概念及其构造方法、 学习和掌握二叉排序树的概念及其构造方法、 二叉排序树的查找算法原理。 二叉排序树的查找算法原理。 学习和掌握选择排序、交换排序、插入排序、 学习和掌握选择排序、交换排序、插入排序、 归并排序和快速排序方法的原理。 归并排序和快速排序方法的原理。

第2页

软件技术基础

Subsection 1 Search(查找 搜索 查找/搜索 查找 搜索)第3页

软件技术基础

所谓查找(或搜索) 就是在数据 所谓查找(或搜索),就是在数据 查找 集合中寻找满足某种条件的数据对象: 集合中寻找满足某种条件的数据对象: 1.查找成功 1.查找成功 即找到满足条件的 数据对象时, 作为结果, 数据对象时, 作为结果, 可报告该对象 在结构中的位置, 在结构中的位置, 还可给出该对象中的 具体信息。 具体信息。 2.查找不成功 或搜索失败。 2.查找不成功 或搜索失败。作为 结果, 应报告一些信息, 如失败标志、 结果, 应报告一些信息, 如失败标志、 位置等 。第4页

软件技术基础

通常称用于查找的数据集合为查找 通常称用于查找的数据集合为查找 结构,它是由同一数据类型的数据 结构,它是由同一数据类型的数据 或记录)组成。 (或记录)组成。 每个对象有若干属性, 每个对象有若干属性,其中有一个 属性,其值可唯一地标识这个对象, 属性,其值可唯一地标识这个对象, 称为关键字 使用基于关键字 关键字。 关键字的搜 称为关键字。使用基于关键字的搜 查找结果应是唯一的。 索,查找结果应是唯一的。但在实 际应用时,查找条件是多方面的, 际应用时,查找条件是多方面的, 使用基于属性的查找方法, 可以使用基于属性的查找方法 可以使用基于属性的查找方法,但 查找结果可能不唯一 不唯一。 查找结果可能不唯一。第5页

软件技术基础

实施查找时有两种不同的环境静态环境 查找结构不需进行插入和 删除操作。 删除操作。 静态查找表 动态环境 查找过程中可能要对查找 结构执行数据插入、 结构执行数据插入、删除或修改等操 并对查找结构进行调整, 作,并对查找结构进行调整,结构可 能发生变化。 能发生变化。 动态查找表动态查找表的表结构是在查找过程中动态生成 的。第6页

软件技术基础

1. 顺序查找(Sequential Search) 以线性结构表示静态查找表。 以线性结构表示静态查找表。 基本原理:将待查找记录依 基本原理: 次逐个与表中记录进行比较。 次逐个与表中记录进行比较。

第7页

软件技术基础

顺序查找过程(从

前向后查找) 顺序查找过程(从前向后查找)SL.elem

k2 3 4 5 6

k7 8 9 10 11 ST.Length=11

21 37 88 19 92 05 64 56 80 75 130 1

假设给定查找值 e=64, 要求 SL.elem[k] = e, 问: k = ?

第8页

软件技术基础

顺序查找过程(从后向前查找) 顺序查找过程(从后向前查找)0单元用于存放待查找关键字,作为“哨 单元用于存放待查找关键字,作为“ 单元用于存放待查找关键字 兵”(guard) i 返回 返回7 SL.elem0 1 2 3 4 5 6 7 8 9 10

i11

64 21 37 88 19 92 05 64 56 80 75 13

key=64返回0 i 返回SL.elem0 1 2 3 4 5 6 7 8 9

ST.Length=11

i10 11

60 21 37 88 19 92 05 64 56 80 75 13

key=60

ST.Length=11页 第9

软件技术基础

顺序查找算法实现(从后向前查找) 顺序查找算法实现(从后向前查找)int Search_Seq( TB SL, TYPE key ) { SL.elem[0].key = key; // “哨兵” 哨兵” 哨兵 for (i=SL.length; SL.elem[i].key!=key; --i); // 从后往前找 return i; // 查找成功时 为有效下标 否则 为0 查找成功时i为有效下标 否则i为 为有效下标,否则 }

第 10 页

软件技术基础

查找算法的评价指标查找成功: 查找成功:最少比较次数 最多比较次数 平均比较次数 查找失败:最少比较次数 查找失败: 最多比较次数 平均比较次数第 11 页

软件技术基础

查找算法的平均查找长度 查找算法的平均查找长度ASL 平均查找长度 (Average Search Length)指为了确定记录在查找表中的位置, 指为了确定记录在查找表中的位置,需 要和给定值进行关键字比较的次数的期望值 要和给定值进行关键字比较的次数的期望值: 期望值

ASL = ∑ PiCii =1

n

其中, 为表长 为表长, 为查找表中第i个记录的 其中,n为表长,Pi为查找表中第 个记录的 n 概率, 为查找到该记录时, 概率,且 ∑ Pi = 1;Ci为查找到该记录时,曾 i =1 和给定值进行关键字比较的次数。 和给定值进行关键字比较的次数。第 12 页

软件技术基础

在等概率情形, 在等概率情形,查找任一记录的概率 相等: 相等:pi = 1/n, i = 1, 2, …, n

以从前向后顺序查找算法为例, 以从前向后顺序查找算法为例,查找成功时, 查找成功时,ASL succ 1 1 n( n + 1) n + 1 = ∑ i = = . n 2 2 i =1 nn

查找不成功时, 查找不成功时, ASLunsucc

1 = ∑ n = n i =1 n第 13 页

n

查找算法时间复杂度? 查找算法时间复杂度? O(n)

软件技术 …… 此处隐藏:1168字,全部文档内容请下载后查看。喜欢就下载吧 ……

第2章_数据结构与算法_第5节_查找和排序.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    Copyright © 2023-2025 学科文库 版权所有
    本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
    客服QQ:370150219 邮箱:370150219@qq.com
    苏ICP备16052595号-5

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219