- 1、本文档共96页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课件(c语言)4
8.1 基本概念与基本运算 8.2 静态查找表 8.3 动态查找表1——树表 8.4 动态查找表2——哈希表查找 问题1:老师想从在座的同学中找到身高1.813米、1.752米和身高1.675的同学 分析: 显然,查找有快慢之分 查找的快慢与什么有关呢? 查找的对象怎么组织 查找所用的方法 随意排队让老师挨个测量 所有同学从高到低排好队,让老师从中间开始选择性的测量; 自报身高,按1.7 的、1.7~1.8 的和 1.8的分块站一排,挨个测量。 题问2. 学校国旗班同学有身高档案,怎么建立可以快速找到身高在某些档次的队员?新队员加入时如何将信息准确插入档案? 建立二叉排序树 1 查找表 查找的对象,或者要查找的数据元素的集合称为查找表。 集合中的数据元素的逻辑结构是松散的数据结构。 2.关键码 标识数据元素的数据项称为关键码,该数据项的值称为关键码值,简称键值。 能唯一标识数据元素的数据项为主关键码,否则称为次关键码。 3 平均查找长度ASL 查找的过程一般是用“给定关键码值与数据元素的关键码值比较”,显然比较的次数越少越好,因此一般用“关键码值的比较次数”来衡量查找算法的时间性能, “关键码值的比较次数”称为查找长度。 平均查找长度ASL是指为确定数据元素在表中的位置所进行的关键码比较次数的期望值(平均值)。 ASL分为两种:查找成功时的ASL和查找不成功时的ASL。对一个含n个数据元素的表,查找成功时: 4 静态查找与动态查找 静态查找表:一个查找表只进行查询某个特定的数据元素或某个特定数据元素的各种属性的操作。 动态查找表:一个查找表若在查找的同时对查找表进行插入或删除某个数据元素的操作 8.2 静态查找表 存储方法:顺序存储或链式存储的静态查找表均可。 #define MAXNODENUM 1000 typedef struct{ KeyType key; /*关键码*/ …… /*其他数据项*/ }RecNode; typedef struct{ RecNode elem[MAXNODENUM]; /* 数据元素 */ int length; /* 顺序表中数据元素的个数 */ }Sq_Table; 查找方法: 顺序查找(线性查找) 从表的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者符合,查到所要找的元素为止。否则就是表中没有要找的元素,检索不成功。 int search_sqtable(Sq_Table st,KeyType kx) { /*在表st中查找关键码值为kx的数据元素,若找到返回该元素在数组中的下标,否则返回0 */ int i = 1; while( i =st.length st.elem[i].key != kx) i++; /* 从顺序表 的前端向后找*/ if ( i st.length) return 0; else return i; } 不足之处:每次比较的时候都要判断 i =st.length 可不可以不做这个判断,以减少比较次数? 算法8-2 设置监视哨的顺序查找算法 int search_sqtable(Sq_Table st,KeyType kx) { /*在表st中查找关键码值为kx的数据元素,若找到返回该元素在数组中的下标,否则返回0 */ int i=st.length; st.elem[0].key = kx;/* 设置监视哨*/ while( st.elem[i].key != kx) i--; /* 从顺序表的尾端向前找,监视哨保证了查找不成功时,i的值为0,并退出循环*/ return i; } 顺序查找的平均查找长度为 8.2.2 折半查找 对于一个顺序表,如果表中所有元素都按照关键码值大小的次序排列,则称为有序表。 在有序表中,查找运算可以用效率更高的折半查找来实现。有序表可以按照关键码值升序或降序排列,下面论述假定有序表按关键码值升序排列。 折半查找的思想为:在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键码相等,则查找成功
您可能关注的文档
- 我国风电特许权招标项目实施情况及综合分析.pdf
- 我国电力投资体制改革30年回顾.pdf
- 截肢残端骨髓炎.pdf
- 户外出行实用手册.doc
- 我国铸铁管的现状与展望.pdf
- 手持抄表器功能拓展应用分析.pdf
- 手机设计缺陷.doc
- 手机银行服务培训.doc
- 打造完美团队的十个条件.doc
- 托辊式电子皮带秤的选型和使用.pdf
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)