- 2
- 0
- 约1.01万字
- 约 47页
- 2019-05-06 发布于广东
- 举报
第7章 查找 本章中介绍下列主要内容: 静态查找表及查找算法:顺序查找、折半查找 动态查找表及查找算法:二叉排序树 哈希表及查找算法 7.1 基本概念 7.2 静态查找 7.3 动态查找 7.4 哈希表 7.1 基本概念 查找表 用于查找的数据元素集合称为查找表。查找表由同一类型的数据元素(或记录)构成。 静态查找表 若只对查找表进行如下两种操作:(1)在查找表中查看某个特定的数据元素是否在查找表中,(2)检索某个特定元素的各种属性,则称这类查找表为静态查找表。静态查找表在查找过程中查找表本身不发生变化。对静态查找表进行的查找操作称为静态查找。 动态查找表 若在查找过程中可以将查找表中不存在的数据元素插入,或者从查找表中删除某个数据元素,则称这类查找表为动态查找表。动态查找表在查找过程中查找表可能会发生变化。对动态查找表进行的查找操作称为动态查找。 关键字 是数据元素中的某个数据项。唯一能标识数据元素(或记录)的关键字,即每个元素的关键字值互不相同,我们称这种关键字为主关键字;若查找表中某些元素的关键字值相同,称这种关键字为次关键字。例如,银行帐户中的帐号是主关键字,而姓名是次关键字。 查找 在数据元素集合中查找满足某种条件的数据元素的过程称为查找。最简单且最常用的查找条件是“关键字值等于某个给定值”,在查找表搜索关键字等于给定值的数据元素(或记录)。若表中存在这样的记录,则称查找成功,此时的查找结果应给出找到记录的全部信息或指示找到记录的存储位置;若表中不存在关键字等于给定值的记录,则称查找不成功,此时查找的结果可以给出一个空记录或空指针。若按主关键字查找,查找结果是唯一的;若按次关键字查找,结果可能是多个记录,即结果可能不唯一。 查找表的存储结构 查找表是一种非常灵活的数据结构,对于不同的存储结构,其查找方法不同。为了提高查找速度,有时会采用一些特殊的存储结构。本章将介绍以线性结构、树型结构及哈希表结构为存储结构的各种查找算法。 查找算法的时间效率 查找过程的主要操作是关键字的比较,所以通常以“平均比较次数”来衡量查找算法的时间效率。 7.2 静态查找 正如本章第一节所述:静态查找是指在静态查找表上进行的查找操作,在查找表中查找满足条件的数据元素的存储位置或各种属性。本节将讨论以线性结构表示的静态查找表及相应的查找算法。 7.2.1 顺序查找 1. 顺序查找的基本思想 顺序查找是一种最简单的查找方法。其基本思想是将查找表作为一个线性表,可以是顺序表,也可以是链表,依次用查找条件中给定的值与查找表中数据元素的关键字值进行比较,若某个记录的关键字值与给定值相等,则查找成功,返回该记录的存储位置,反之,若直到最后一个记录,其关键字值与给定值均不相等,则查找失败,返回查找失败标志。 2. 顺序表的顺序查找 下面是顺序表的类型定义: #define MAX_NUM 100 //用于定义表的长度 typedef struct elemtype{ keytype key; anytype otheritem; }Se_List[MAX_NUM],Se_Item; 假设在查找表中,数据元素个数为n(nMAX_NUM),并分别存放在数组的下标变量a[1]~a[n]中。 下面我们给出顺序查找的完整算法。 int seq_search (Se_List a,keytype k) {//在顺序表中查找关键字值等于k的记录, //若查找成功,返回该记录的位置下标序号,否则返回0 i=1; while (i=n a[i].key != k) i++; if (i=n) retrun i; else return 0; } 改进算法: int seq_search2 (Se_List a,keytype k) { //设置了监视哨的顺序表查找,查找关键字值等于指定值k的记录, //若查找成功,返回记录存放位置的下标值,否则返回0 i=n ; a[0].key=k ; while ( a[i].key != k) i--; return ( i ) ; } 3. 链表的顺序查找 链表的顺序查找是指将查找表作为线性表并以链式存储结构存储,用顺序查找方法查找与指定关键字值相等的记录。
您可能关注的文档
- 北京交通大学供应链管理课件第八讲 供应链物流管理――网络.ppt
- 北京交通大学供应链管理课件第二讲 供应链管理概述.ppt
- 北京交通大学供应链管理课件第九讲 供应链信息管理.ppt
- 北京交通大学供应链管理课件第六讲 供应链物流管理――运输.ppt
- 北京交通大学供应链管理课件第七讲 供应链物流管理――库存.ppt
- 北京交通大学供应链管理课件第三讲 供应链战略及供应链的构建.ppt
- 北京交通大学供应链管理课件第十讲 供应链管理方法.ppt
- 北京交通大学供应链管理课件第四讲 供应链合作伙伴的选择.ppt
- 北京交通大学供应链管理课件第五讲 供应链业务流程重组.ppt
- 北京交通大学供应链管理课件第一讲 供应链概述.ppt
- 滁州学院数据结构课件第七章 集合与搜索(C++语言版).ppt
- 滁州学院数据结构课件第三章 链表(C++语言版).ppt
- 滁州学院数据结构课件第三章 栈和队列(C语言版).ppt
- 滁州学院数据结构课件第十章 索引与散列(C++语言版).ppt
- 滁州学院数据结构课件第四章 串和数组(C语言版).ppt
- 滁州学院数据结构课件第四章 栈和队列(C++语言版).ppt
- 滁州学院数据结构课件第五章 递归与广义表(C++语言版).ppt
- 滁州学院数据结构课件第五章 树和二叉树(C语言版).ppt
- 滁州学院数据结构课件第一章 绪论(C++语言版).ppt
- 大连大学机械学院机械制造装备设计课件 机器人应用.ppt
最近下载
- 省考公务员-贵州-行政职业能力测验-第二章言语理解与表达-第一章逻辑填空-.docx VIP
- 2025福建闽投永安抽水蓄能有限公司招聘40人(公共基础知识)测试题附答案解析.docx VIP
- 2024年西安交通大学少年班初试数学真题及解析 .pdf VIP
- 三菱帕杰罗维修资料-结构图.pdf
- 习概习题汇总.docx VIP
- 急性肾盂肾炎医师查房记录.docx VIP
- 矿山生态保护修复验收规范.pdf VIP
- 2024-2025学年浙江省杭州市滨江区六年级(上)期末数学试卷(含答案).pdf VIP
- 中国古典名著《鬼谷子》.pdf VIP
- 大学物理通用教程_电磁学(第二版)陈秉乾习题解答.pdf
原创力文档

文档评论(0)