- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章查找new
数据结构课程的内容 第9章 查找 8.1 基本概念 讨论: (4)如何评估查找方法的优劣? 9.2 静态查找表 9.1 静态查找表 顺序表的查找 一、顺序查找( Linear search,又称线性查找 ) (2)算法的实现: 9.1 顺序查找 查找过程:从表的一端开始逐个进行记录的关键字和给定值的比较 算法描述 折半查找(又称二分查找或对分查找) 分块查找方法评价 1对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( ) A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/2 2. 下面关于二分查找的叙述正确的是 ( ) A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 B. 表必须有序且表中数据必须是整型,实型或字符型 C. 表必须有序,而且只能从小到大排列 D. 表必须有序,且表只能以顺序方式存储 3.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( ) A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减 4.当采用分快查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必 须有序,每块 内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大 (或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 有18个元素的有序表做二分查找,a[1]-a[18],则查找a[3]的比较次数为( ) 己知有序表为(12,18,24,35,47,50,62,83,90,115,134)当用二分法查找90时,需_______次查找成功,47时________成功,查100时,需________次才能确定不成功。 已知N元整型数组a存放N个学生的成绩,已按由大到小排序,以下算法是用对分(折半)查找方法统计成绩大于或等于X分的学生人数,请填空使之完善。(C语言) #define N /*学生人数*/ int uprx(int a[N],int x ) /*函数返回大于等于X分的学生人数*/ { int head=1,mid,rear=N; do {mid=(head+rear)/2; if(x=a[mid]) ____ else ____; }while(__); if (a[head]x) return head-1; return head; } 9.3 动态查找表 一、二叉排序树的定义 二、二叉排序树的插入与删除 二叉排序树的查找算法如何实现? 9.2 动态查找表 二叉排序树的插入和删除 在二叉排序树上插入新记录 9.2 动态查找表 二叉排序树的插入和删除 从二叉排序树上删除一条记录 三、二叉排序树的查找分析 最好情况:即:与折半查找中的判定树相同(形态比较均衡) 四、平衡二叉树 1)LL平衡旋转: 3)LR平衡旋转: 例:请将下面序列构成一棵平衡二叉排序树: ( 13,24,37,90,53) 8.4 哈希查找表 一、哈希表的概念 例2 : 若干术语 冲突现象举例: 在哈希查找方法中,冲突是不可能避免的,只能尽可能减少。 二、哈希函数的构造方法 1、直接定址法 2、除留余数法 4、数字分析法 5、平方取中法 7、随机数法 三、冲突处理方法 1、开放定址法(开地址法) 例: 讨论: 2. 二次探测法 2、链地址法(拉链法) 3、再哈希法(双哈希函数法) 四、哈希表的查找及分析 讨论: 本章小结 Hash(key) = a·key + b (a、b为常数) 优点:以关键码key的某个线性函数值为哈希地址,不会产生冲突. 缺点:要占用连续地址空间,空间效率低。 例:关键码集合为{100,300,500,700,800,900}, 选取哈希函数为Hash(key)=key/100, 则存储结构(哈希表)如下: 0 1 2 3 4 5 6 7 8 9 900 800 700 500 300 100 Hash(key)= ? B*( A*key mod 1 ) ? (A、B均为常数,且0A1,B为整数) 特点:以关键码key乘以A,取其小数部分,然后再放大B倍并取整,作为哈希地址。 Hash(key)=key mod p
您可能关注的文档
最近下载
- DB12_T969—2020_党政机关会议服务规范_天津市.docx VIP
- 2024-2025学年厦门一检初三英语试卷及答案.pdf VIP
- 2024-2025学年北京丰台区八年级初二(上)期末语文试卷(含答案).pdf
- 山东工商学院2024-2025学年《会计学》期末考试试卷(A卷)含参考答案.docx
- 政协提案课件稿.pptx VIP
- 《计算机图形学》练习试题及参考答案(三).doc VIP
- 步进式加热炉设计计算.pdf VIP
- 安徽大学《信号与系统》2024 - 2025 学年第一学期期末试卷.pdf VIP
- 负压称量罩方案书_130.pdf VIP
- 人教版六年级上册期末考试数学试卷(含解析)2025-2026学年浙江省杭州市西湖区.docx VIP
原创力文档


文档评论(0)