- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 C语言版(严蔚敏版)第9章 查找
;学习提要;学习提要(具体来讲);基本概念; 动态查找表:若在查找过程中可以将查找表中不存在的数据元素插入,或者从查找表中删除某个数据元素,则称这类查找表为动态查找表。动态查找表在查找过程中查找表可能会发生变化。对动态查找表进行的查找操作称为动态查找。
关键字:是数据元素中的某个数据项。唯一能标识数据元素(或记录)的关键字,即每个元素的关键字值互不相同,我们称这种关键字为主关键字;若查找表中某些元素的关键字值相同,称这种关键字为次关键字。例如,银行帐户中的帐号是主关键字,而姓名是次关键字。 ; 查找:在数据元素集合中查找满足某种条件的数据元素的过程称为查找。最简单且最常用的查找条件是“关键字值等于某个给定值”,在查找表搜索关键字等于给定值的数据元素(或记录)。若表中存在这样的记录,则称查找成功,此时的查找结果应给出找到记录的全部信息或指示找到记录的存储位置;若表中不存在关键字等于给定值的记录,则称查找不成功,此时查找的结果可以给出一个空记录或空指针。若按主关键字查找,查找结果是唯一的;若按次关键字查找,结果可能是多个记录,即结果可能不唯一。; 查找表的存储结构:查找表是一种非常灵活的数据结构,对于不同的存储结构,其查找方法不同。为了提高查找速度,有时会采用一些特殊的存储结构。本章将介绍以线性结构、树型结构及哈希表结构为存储结构的各种查找算法。
查找算法的时间效率:查找过程的主要操作是关键字的比较,所以通常以“平均比较次数”来衡量查找算法的时间效率。;9.1.1. 顺序查找(线性查找)
静态查找是指在静态查找表上进行的查找操作,在查找表中查找满足条件的数据元素的存储位置或各种属性。本节将讨论以线性结构表示的静态查找表及相应的查找算法。;顺序查找的基本思想:
顺序查找是一种最简单的查找方法。其基本思想是将查找表作为一个线性表,可以是顺序表,也可以是链表,依次用查找条件中给定的值与查找表中数据元素的关键字值进行比较,若某个记录的关键字值与给定值相等,则查找成功,返回该记录的存储位置,反之,若直到最后一个记录,其关键字值与给定值均不相等,则查找失败,返回查找失败标志。;· 可以采用从前向后查,也可采用从后向前查的方法。
· 在平均情况下,大约要与表中一半以上元素进行比较效率较低。平均查找长度较大。
· 在下面两种情况下只能采取顺序查找:
a. 线性表为无序表(元素排列是无序的);
b. 即使是有序线性表,但采用的是链式存储结构。;(1)顺序查找 (线性表在顺序存储结构下的顺序查找)
数据结构:
#define MAX_NUM 100 //用于定义表的长度
typedef struct{
int key;
float info;
}SSTable[MAX_NUM],SSItem ;; 假设在查找表中,数据元素个数为n(nMAX_NUM),并分别存放在数组的下标变量ST[1]~ST[n]中。
下面我们给出顺序查找的完整算法。;int seq_search (SSTable ST,int key)
{//在顺序表中查找关键字值等于key的记录,
//若查找成功,返回该记录的位置下标序号,否则返回0
i=1;
while (i=n ST[i].key != key) i++;
if (i=n) retrun i;
else return 0;
};0 1 2 3 4 5 6 7;根据上述算法可知:
查找成功时的平均查找次数为:
ASL=(1+2+3+4+……+n)/n=(n+1)/2
查找不成功时的比较次数为: n+1
则顺序查找的平均查找长度为:
ASL==((n+1)/2+n+1)/2=(n+1)3/4
顺序查找的优点:算法简单,无需排序,采用顺序和链式存储均可。
缺点:平均查找长度较大。尤其当n较大时,不宜
采用这种查找方法。; (2)线性表在链式存储结构下的顺序查找
链表的顺序查找是指将查找表作为线性表并以链式存储结构存储,用顺序查找方法查找与指定关键字值相等的记录。
链表的类型定义如下所示:
typedef struct node {
keytype key; //结点的关键字类型
anytype otheritem; //结点的其他成分
struct node *next;//指向链表结点的指针
}Lin
您可能关注的文档
- 教科版初三物理上册第六章第三节焦耳定律.ppt
- 教科版四上科学课件 1.2天气日历--PPT.ppt
- 教科版小学科学四年级下册观察、描述矿物(一)课件.ppt
- 教科版七下第二课第1框一滴水与大海(共43张PPT).ppt
- 教科版三年级科学上册第三单元第三课-比较韧性PPT(含课堂作业).ppt
- 教科版_11.1_杠杆(上课用).ppt
- 教程7广告和销售管理.ppt
- 教科版必修1第2章导学案.doc
- 教科版速度课件.ppt
- 教育思想与幼儿教育研究结题报告.doc
- 反恐工作总结.docx
- 中专电子商务教学计划.docx
- 精品解析:2025年广东省深圳市南山区第二外国语(集团)二模历史试题(原卷版).docx
- 精品解析:2025年广东省深圳市南山区教育科学研究院附属学校教育集团中考二模历史试题(原卷版).docx
- 精品解析:2025年广东省深圳市南实麒麟中学中考三模历史试题(原卷版).docx
- 山东省威海市2024年中考英语真题.docx
- 精品解析:2025年广东省深圳市南山区第二外国语(集团)中考三模历史试题(原卷版).docx
- 精品解析:2025年广东省深圳市名校联考中考二模道德与法治试题(原卷版).docx
- 精品解析:2025年广东省深圳市南山区教育科学研究院附属学校教育集团中考二模历史试题(解析版).docx
- 江苏省淮安市2021年小学毕业升学英语真题卷.docx
最近下载
- 2025年江苏钟山宾馆集团有限公司校园招聘笔试模拟试题及答案解析.docx VIP
- SL176-2007 水利水电工程施工质量检验与评定规程.docx VIP
- IT运维服务智能管理平台设计与实施策略.doc VIP
- 全省组织人事系统学习贯彻《条例》培训班的辅导报告.pptx.pptx VIP
- 2023年江西机电职业技术学院教师招聘考试笔试试题及答案解析.docx VIP
- 非全日制硕士专业学位研究生学习成绩记录表(模板).doc VIP
- 配置审计报告模板.docx VIP
- 工程造价审计保密工作及风险管控制度.docx VIP
- 《建筑给排水设计》课件分享.ppt VIP
- 煤矿综采维修钳工技能理论应知应会考试题库大全-下(判断题).doc VIP
文档评论(0)