
数据结构(本)课程辅导与练习-第8章 第8章查找 一、相关术语 查找表、关键字、主关健字、次关键字、顺序查找、折华查找、分块在找、二叉排序树、 哈希表。 二、查找的基本概念 1,查找表和查找 一股,段定被查找的对象是由一组结点组成的表(Tb1)或文件,而每个结点则由若 干个数据项组成。并假设每个结点都有一个能惟一标识该结点的关键字。 查找Searching)的定义是:给定一个值K,在含有n个结点的表中找出关键字等于 给定值K的结点。若找到,则查找成功,返回该结点的信息或该结点在表中的位置:否则查 找失败。返国相关的指示信息, 2,查找表的数据结构表示 (1)动态查找表和静态查找表 若在查找的同时对表做修改操作(如新入和剧除),则相应的表称之为动态查找表。 否则称之为静态查找表。 (2)内查找和外查找 和排序类拟。查找也有内查找和外查找之分。若整个查找过程都在内存进行,则称 之为内查找:反之,若查找过程中需要访问外存,则称之为外查找。 3,平均查找长度SL 查找运算的主要操作是关键字的比较,所以通常把查找过程中对关键字需要执行的 平均比较次数(也称为平均查找长度)作为衡量一个查找算法效率优劣的标准。 平均查找长度ASL(Average S0 arch,I ength》定义为: 其中: ①■是结点的个数: ②印是查找第1个结点的概率。若不特别声明。认为每个结点的查找概率相等, 即 内n--1/m ⑧%是找到第1个结点所需进行的比较次数: 注意: 为了简单起见,假定表中关键字的类型为整数 typedef int KeyType:f/信eyType应由用户定义 三、顺序查找 1,顺序查找的基本思想 基本思如是:从表的一端开始,顺序扫描线性表,依次将扫描到的站点关键字和给定值 露相比较。若当前扫描到的结点关键字与相等,则查找成功:若扫指结束后,仍未找到关 健字等于的结点,则查找失败。 2,顺序查找的存储结构要求 1
1 数据结构(本)课程辅导与练习-第 8 章 第 8 章 查找 一、相关术语 查找表、关键字、主关键字、次关键字、顺序查找、折半查找、分块查找、二叉排序树、 哈希表。 二、查找的基本概念 1.查找表和查找 一般,假定被查找的对象是由一组结点组成的表(Table)或文件,而每个结点则由若 干个数据项组成。并假设每个结点都有一个能惟一标识该结点的关键字。 查找(Searching)的定义是:给定一个值 K,在含有 n 个结点的表中找出关键字等于 给定值 K 的结点。若找到,则查找成功,返回该结点的信息或该结点在表中的位置;否则查 找失败,返回相关的指示信息。 2.查找表的数据结构表示 (1)动态查找表和静态查找表 若在查找的同时对表做修改操作(如插入和删除),则相应的表称之为动态查找表。 否则称之为静态查找表。 (2)内查找和外查找 和排序类似,查找也有内查找和外查找之分。若整个查找过程都在内存进行,则称 之为内查找;反之,若查找过程中需要访问外存,则称之为外查找。 3.平均查找长度 ASL 查找运算的主要操作是关键字的比较,所以通常把查找过程中对关键字需要执行的 平均比较次数(也称为平均查找长度)作为衡量一个查找算法效率优劣的标准。 平均查找长度 ASL(Average Search Length)定义为: 其中: ①n 是结点的个数; ②Pi 是查找第 i 个结点的概率。若不特别声明,认为每个结点的查找概率相等, 即 pl=p2…=pn=1/n ③ci 是找到第 i 个结点所需进行的比较次数。 注意: 为了简单起见,假定表中关键字的类型为整数: typedef int KeyType; //KeyType 应由用户定义 三、顺序查找 1.顺序查找的基本思想 基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键字和给定值 K 相比较。若当前扫描到的结点关键字与 K 相等,则查找成功;若扫描结束后,仍未找到关 键字等于 K 的结点,则查找失败。 2.顺序查找的存储结构要求

顺序查找方法既适用于线性表的顺序存储结构,也适用于线性表的硅式存储结构(使用 单链表作存储结构时。扫描必须从第一个结点开始)。 3。基于顺序结构的顺序查找算法 【算法参见教材】 下而时教材中算法进行分析 ①算法中监视增[0们的作用 为了在r循环中省去判定防止下标越界的条作1≥1,从而节省比较的时间。 ②成功时的顺序查找的平均查找长度: Ag一之m-∑m-1+0-m+m-0p2++2+P 在等概率情况下,=/角(1多i忘),放成功的平均查找长度为 (n++2+1)/e(n+1D/2 即查找成功时的平均比较次数钓为表长的一半。 若贰值不在表中,则须进行+1次比较之后才能确定查找失败。 同表中各结点的查找概率并不相等的风 【例】在由全校学生的病历档案组成的线性表中,体弱多病同学的病历的查践概率必 然高于健康月学的病历,由于上式的ASL在,p,≥A时达到最小值。 若事先知道表中各结点的查找概单不相等和它们的分布情况,则应将表中结点按查 找概率由小到大地存放,以便提高顺序查找的效率。 为了提高查找效率,对算法SeqSearch做如下修改:每当查找成功,就将找到的结 点和其后继(若存在)结点交换。这样,使得查找概率大的结点在查找过程中不斯往后移,便 于在以后的查找中减少比较次数。 ④顺序查找的优点 算法简单,且对表的结构无任何要求,无论是用向量还是用链表来存放结点,也无 论结点之间是否按关键字有序,它同样适用. 同顺序查找的缺点 查找效率低,因此,当较大时不宜采用顺序查找。 四、折半查找 1,折半查找 折半查找又称二分查找,它是一种效率较高的查找方法。 折半查找要求:线性表是有序表,即表中结点按关健字有序,并且要用向量作为表 的存储结构。不妨设有序表是递增有序的。 2.折半查找的基本思想及算法 【参见教材】 3。新半查找的平均查找长度 设内部结点的总数为=-1,则判定树是深度为=g+1)的满二义树(深度h不 计外部结点),树中第k层上的结点个数为“,查找它们所需的比较次数是k。因此在等概 率假设下,二分查找成功时的平均查找长度为: ASL4✉lg(n+l)-l 折半查找在查线失败时所需比较的关键字个数不超过判定树的深度,在最坏情况下董找 成功的比较次数也不超过判定树的深度。即为 1aa+D
2 顺序查找方法既适用于线性表的顺序存储结构,也适用于线性表的链式存储结构(使用 单链表作存储结构时,扫描必须从第一个结点开始)。 3.基于顺序结构的顺序查找算法 【算法参见教材】 下面对教材中算法进行分析 ① 算法中监视哨 R[0]的作用 为了在 for 循环中省去判定防止下标越界的条件 i≥1,从而节省比较的时间。 ②成功时的顺序查找的平均查找长度: 在等概率情况下,pi=1/n(1≤i≤n),故成功的平均查找长度为 (n+…+2+1)/n=(n+1)/2 即查找成功时的平均比较次数约为表长的一半。 若 K 值不在表中,则须进行 n+1 次比较之后才能确定查找失败。 ③表中各结点的查找概率并不相等的 ASL 【例】在由全校学生的病历档案组成的线性表中,体弱多病同学的病历的查找概率必 然高于健康同学的病历,由于上式的 ASLsq 在 pn≥pn-1≥…≥p2≥p1时达到最小值。 若事先知道表中各结点的查找概率不相等和它们的分布情况,则应将表中结点按查 找概率由小到大地存放,以便提高顺序查找的效率。 为了提高查找效率,对算法 SeqSearch 做如下修改:每当查找成功,就将找到的结 点和其后继(若存在)结点交换。这样,使得查找概率大的结点在查找过程中不断往后移,便 于在以后的查找中减少比较次数。 ④顺序查找的优点 算法简单,且对表的结构无任何要求,无论是用向量还是用链表来存放结点,也无 论结点之间是否按关键字有序,它都同样适用。 ⑤顺序查找的缺点 查找效率低,因此,当 n 较大时不宜采用顺序查找。 四、折半查找 1.折半查找 折半查找又称二分查找,它是一种效率较高的查找方法。 折半查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表 的存储结构。不妨设有序表是递增有序的。 2.折半查找的基本思想及算法 【参见教材】 3.折半查找的平均查找长度 设内部结点的总数为 n=2h -1,则判定树是深度为 h=lg(n+1)的满二叉树(深度 h 不 计外部结点)。树中第 k 层上的结点个数为 2 k-1,查找它们所需的比较次数是 k。因此在等概 率假设下,二分查找成功时的平均查找长度为: ASLbn≈lg(n+1)-1 折半查找在查找失败时所需比较的关键字个数不超过判定树的深度,在最坏情况下查找 成功的比较次数也不超过判定树的深度。即为:

折半查找的最坏性能和平均性能相当接近。 4,折半查找的优缺点 虽然二分查找的效率高,但是要将表按关健字排序。而排序本身是一种很费时的运算 既使采用高效率的排序方法也要花费0lgm)的时间。 斯半查找只适用顺序存储结构。为保持表的有序性,在顺序结构里断入和到除军必须移 动大量的站点,因此,折半查找特别适用于那种一经建立就根少改动、而又经常需要查找的 线性表。 对那些查找少而又经常雷要改动的线性表,可采用链表作存储结构,进行顺序查找。链 表上无法实现折半查找。 五、分块查找的算法分析 (1)平均直找长度ASL 分块查找是两次查找过程。整个查找过程的平均查找长度是两次查找的平均查找长度之 和, ①以折半查找来确定块,分块直找成功时的平均查找长度 ASL"ASLASL1g(bt1)-I+(stl)/21g(n/stl)+s/2 ②以顺序查找确定块,分块查找成功时的平均查找长度 AL'=+10/2+(s+10/2=(s2+2s+n)/2s) 注意 当=√五时ASL'取慢小值石+1,即当采用顺序查找确定块时,应将各块中的 结点数选定为√五。 【例】若表中有10000个结点,则应把它分成10个块,每块中含10个结点。用顺序 查找确定块,分块查找平均香要做100次比较。而顺序查找平均雷做5000次比较,斯半查 找最多需14次比较, 注意: 分块查找算法的效率介于肌序查找和二分查找之间。 (2)块的大小 在实际应用中,分块直找不一定要将线性表分成大小相等的若干块,可根据表的特征进 行分块。 【例】一个学校的学生登记表,可按系号或班号分块。 (3)结点的存储结构 各块可放在不闲的向量中,也可将每一块存放在一个单链表中。 (4)分块查找的优点 分块查找的优点是: ①在表中插入或副除一个记录时,只要找到该记录所属的块,就在该块内进行辅入和则 除运算, ②因块内记求的存故是任意的,所以插入或制除比较容易,无须移动大量记采。 分块查找的主要代价是增如一个辅助数组的存储空何和将初始表分块排序的运算。 六、二叉排序树查找的算法分析 在二叉排序树上进行查找时,若查找成功,则是从根结点出发走了一条从根到特查结
3 折半查找的最坏性能和平均性能相当接近。 4.折半查找的优缺点 虽然二分查找的效率高,但是要将表按关键字排序。而排序本身是一种很费时的运算。 既使采用高效率的排序方法也要花费 O(nlgn)的时间。 折半查找只适用顺序存储结构。为保持表的有序性,在顺序结构里插入和删除都必须移 动大量的结点。因此,折半查找特别适用于那种一经建立就很少改动、而又经常需要查找的 线性表。 对那些查找少而又经常需要改动的线性表,可采用链表作存储结构,进行顺序查找。链 表上无法实现折半查找。 五、分块查找的算法分析 (1)平均查找长度 ASL 分块查找是两次查找过程。整个查找过程的平均查找长度是两次查找的平均查找长度之 和。 ①以折半查找来确定块,分块查找成功时的平均查找长度 ASLblk=ASLbn+ASLsq≈lg(b+1)-1+(s+1)/2≈lg(n/s+1)+s/2 ②以顺序查找确定块,分块查找成功时的平均查找长度 ASL'blk=(b+1)/2+(s+1)/2=(s2 +2s+n)/(2s) 注意: 当 s= 时 ASL'blk 取极小值 +1 ,即当采用顺序查找确定块时,应将各块中的 结点数选定为 。 【例】若表中有 10000 个结点,则应把它分成 100 个块,每块中含 100 个结点。用顺序 查找确定块,分块查找平均需要做 100 次比较,而顺序查找平均需做 5000 次比较,折半查 找最多需 14 次比较。 注意: 分块查找算法的效率介于顺序查找和二分查找之间。 (2)块的大小 在实际应用中,分块查找不一定要将线性表分成大小相等的若干块,可根据表的特征进 行分块。 【例】一个学校的学生登记表,可按系号或班号分块。 (3) 结点的存储结构 各块可放在不同的向量中,也可将每一块存放在一个单链表中。 (4)分块查找的优点 分块查找的优点是: ①在表中插入或删除一个记录时,只要找到该记录所属的块,就在该块内进行插入和删 除运算。 ②因块内记录的存放是任意的,所以插入或删除比较容易,无须移动大量记录。 分块查找的主要代价是增加一个辅助数组的存储空间和将初始表分块排序的运算。 六、二叉排序树查找的算法分析 在二叉排序树上进行查找时,若查找成功,则是从根结点出发走了一条从根到待查结

点的路径。若查找不成功,则是从根结点出发走了一条从根到某个叶子的路径。 (》二叉排序树查找成功的平均查找长度 在等概率假设下,下面()图中二叉排序树查找成功的平均查找长度为 AL."∑月4-0+2×2+3×4+4×10■3 在等概率假设下,)图所示的树在查找成功时的平均查找长度为: ASL-(12+3t4+5+6+7+8+9+10)/10-5.5 Q12 45 024 24 37 55 37 120 60 53 28 40 70 670 (a) l 由同一组关键子构成的两煤形态不同的二义排序树 注意: 与二分查找类蚁,和关键字比较的次数不超过树的深度。 2)在二叉排序树上进行查找时的平均查找长度和二叉树的形态有关 二分查找法查找长度为■的有序表,其判定树是惟一的。含有m个结点的二叉排序 树却不候一,对于含有同样一粗结点的表,由于结点辅入的先后次序不月。所构成的二夏推 序树的彩态和深度也可能不同 【例】下图(a)所示的树,是按如下插入次序构成的: 15,24,55.12,37,53,60,28,40,70 下图()所示的树,是按如下插入次序构成的: 12,24,28,37,40,45.53,55,60,70 Q12 45 Q2 037 24 55 0 45 120 37 53 00 d 53 28 40 70 (a) 由同一组关键字构成的两煤形态不同的二义序树 4
4 点的路径。若查找不成功,则是从根结点出发走了一条从根到某个叶子的路径。 (1) 二叉排序树查找成功的平均查找长度 在等概率假设下,下面(a)图中二叉排序树查找成功的平均查找长度为 在等概率假设下,(b)图所示的树在查找成功时的平均查找长度为: ASLb=(1+2+3+4+5+6+7+8+9+10)/10=5.5 注意: 与二分查找类似,和关键字比较的次数不超过树的深度。 (2)在二叉排序树上进行查找时的平均查找长度和二叉树的形态有关 二分查找法查找长度为 n 的有序表,其判定树是惟一的。含有 n 个结点的二叉排序 树却不惟一。对于含有同样一组结点的表,由于结点插入的先后次序不同,所构成的二叉排 序树的形态和深度也可能不同 【例】下图(a)所示的树,是按如下插入次序构成的: 45,24,55,12,37,53,60,28,40,70 下图(b)所示的树,是按如下插入次序构成的: 12,24,28,37,40,45,53,55,60,70

在二叉持序树上选行查找时的平均查找长度和二叉树的形老有关 ①在最坏情况下,二夏排序树是通过把一个有序表的个结点依次插入而生成的,此时 所得的二叉排序树蜕化为一保深度为的单支树,它的平均查找长度和单链表上的顺序查找 相同,亦是+1)/2, ②在最好情况下,二叉排序树在生成的过程中,树的形态比较匀称,最终得到的是一, 形态与二分查找的判定树相似的二叉排序树,此封它的平均查找长度大韵是1用。 ③辅入,副除和查找算法的时间复桑度均为0(1), 3》二夏排序树和二分查找的比较 就平均时间性能而言,二叉排序树上的查找和二分查找差不多。 就维护表的有序性面言,二叉排序树无须移动结点,具需修改指针即可完成插入和 别除操作,且其平均的执行时间均为0(1m)。因此更有效。折率查找所涉及的有序表是一 个向量。若有插入和副除结点的操作,则推护表的有序性所花的代价是0()。当有序表是 静态查找表时,宜用向量作为其存储结构,而采用折半直找实现其查找操作:若有序表里动 态查找表,则应选择二叉排序树作为其存储结构。 七、哈希表查找算法的性能分析 插入和到除的时间均取决于直找,植下面只分析直找操作的时间性隆。 屈然哈希表在关键字和存储位置之间建立了对应关系,理情况是无须关键字的比 较就可找到待查关键字。但是由于冲突的存在,哈希表的查找过程仍是一个和关键字比较的 过程,不过哈希表的平均查找长度比顺序查找、折半查找等完全依粮于关健字比较的查我要 小得多。 (1)查找成功的AS 哈希表上的查找优于顺序查找和折半查找。 (2)查找不成功的SL 对于不藏功的查找,顺序查找和二分董找所需进行的关键字比教次数仅取决于表长, 面哈希查找所需进行的关键字比较次数和待查结点有关。因此,在等概率情况下,也可将哈 希表在查找不成功时的平均查找长度,定义为查找不成功时对关键字需要执行的平均比较次 数。 注意 ①由同一个哈希函数、不月的解决冲突方法构造的哈希表,其平均查找长度是不相 同的。 ②哈希表的平均查找长度不是结点个数的函数,而是装填因子的函数,因此在 设计哈希表时可选择▣以控哈希表的平均直找长度。 每0的取值 ā越小,产生冲突的机会就小,但▣过小,空间的浪费就过多。只要ā选择合适, 哈希表上的平均查找长度藏是一个常数,即哈希表上查找的平均时间为0(), ①哈希法与其也查找方法的区别 除哈希法外,其他查找方法有共同特征为:均是建立在比较关键字的基础上。其中顺序查找 是对无序集合的查找。每次关键字的比结果为”=成!=“两种可能,其平均时间为0() 其余的查找均是对有序集合的查找。每次关健字的比较有“=”、”(”和”)”三种可能,且每次 比较后均能增小下次的查找范围,故查找速度更快。其平均时间为0(1)。南哈希法是根 据关键字直接求出地址的查找方法,其查找的拥望时间为0(1)
5 在二叉排序树上进行查找时的平均查找长度和二叉树的形态有关: ①在最坏情况下,二叉排序树是通过把一个有序表的 n 个结点依次插入而生成的,此时 所得的二叉排序树蜕化为一棵深度为 n 的单支树,它的平均查找长度和单链表上的顺序查找 相同,亦是(n+1)/2。 ②在最好情况下,二叉排序树在生成的过程中,树的形态比较匀称,最终得到的是一棵 形态与二分查找的判定树相似的二叉排序树,此时它的平均查找长度大约是 lgn。 ③插入、删除和查找算法的时间复杂度均为 O(lgn)。 (3)二叉排序树和二分查找的比较 就平均时间性能而言,二叉排序树上的查找和二分查找差不多。 就维护表的有序性而言,二叉排序树无须移动结点,只需修改指针即可完成插入和 删除操作,且其平均的执行时间均为 O(lgn),因此更有效。折半查找所涉及的有序表是一 个向量,若有插入和删除结点的操作,则维护表的有序性所花的代价是 O(n)。当有序表是 静态查找表时,宜用向量作为其存储结构,而采用折半查找实现其查找操作;若有序表里动 态查找表,则应选择二叉排序树作为其存储结构。 七、哈希表查找算法的性能分析 插入和删除的时间均取决于查找,故下面只分析查找操作的时间性能。 虽然哈希表在关键字和存储位置之间建立了对应关系,理想情况是无须关键字的比 较就可找到待查关键字。但是由于冲突的存在,哈希表的查找过程仍是一个和关键字比较的 过程,不过哈希表的平均查找长度比顺序查找、折半查找等完全依赖于关键字比较的查找要 小得多。 (1)查找成功的 ASL 哈希表上的查找优于顺序查找和折半查找。 (2) 查找不成功的 ASL 对于不成功的查找,顺序查找和二分查找所需进行的关键字比较次数仅取决于表长, 而哈希查找所需进行的关键字比较次数和待查结点有关。因此,在等概率情况下,也可将哈 希表在查找不成功时的平均查找长度,定义为查找不成功时对关键字需要执行的平均比较次 数。 注意: ①由同一个哈希函数、不同的解决冲突方法构造的哈希表,其平均查找长度是不相 同的。 ②哈希表的平均查找长度不是结点个数 n 的函数,而是装填因子 α 的函数。因此在 设计哈希表时可选择 α 以控制哈希表的平均查找长度。 ③ α 的取值 α 越小,产生冲突的机会就小,但 α 过小,空间的浪费就过多。只要 α 选择合适, 哈希表上的平均查找长度就是一个常数,即哈希表上查找的平均时间为 O(1)。 ④ 哈希法与其他查找方法的区别 除哈希法外,其他查找方法有共同特征为:均是建立在比较关键字的基础上。其中顺序查找 是对无序集合的查找,每次关键字的比较结果为"="或"!="两种可能,其平均时间为 O(n); 其余的查找均是对有序集合的查找,每次关键字的比较有"="、""三种可能,且每次 比较后均能缩小下次的查找范围,故查找速度更快,其平均时间为 O(lgn)。而哈希法是根 据关键字直接求出地址的查找方法,其查找的期望时间为 O(1)

八、练习题 单项选择题 1.有一个有序表{1,3,9,12.32,41,45,62,75.77,82,95.100,当用二分 查找法查找值为脱的结点时,经〔)次比较后查找成功。 A.1 B.2C.3D.4 2.使用折半查找法时,要求查找表中各元素的键值您须是()排列的。 A.递增或递减B.速增C.递减D.无序 3己知一个有序表为{11,22,33,44.55,66,77,88,99】,则顺序查找元素55雷要比较 ()次, A.3 B.4 C.5D.6 4.有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功 的平均比较次数为《)。 A.29/10 B.31/10 C.28/100.29/9 反采用分块查找时,若线性表中共有324个元素,查找每个元素的顺率相同,假议采用 顺序查找来确定结点所在的块。每块应分()个结点最佳。 A.10 B.18 C.6 D.324 6。如果要求一个线性表既能较快地查找,又旋动态适应变化要求,可以采用() 查找方法。 A。顺序 B,分块 C,折半 D.酸列 7,关于哈希查找的说法正确的是()。 A除留余数法是最好的 R哈希函数的好坏要根据具体情况而定 G,降一个元素后,不管用爆种方法处理冲突,都只雷简单地把该元素副除掉 因为冲突是不可通免的,所以装填因子越小越好 8.采用顺序查找方法查找长度为n的线性表时。每个元素的平均查找长度为()。 An B.n2 C.(n+lV2 D-1/2 9.长度为255的表,采用分块查找法,每块的最佳长度是()。 A14 B15 C.16 D.17 10.假设在有序线性表1.20上进行二分查找。则比较五次查找成功的结点数为()。 A4 B.5 C.6 D.8 练习题答案 单项选择题 1.C2.A3.C4.A5,B6.B7.B8.C9.B10.B
6 八、练习题 单项选择题 1.有一个有序表{1,3,9,12,32,41,45,62,75,77,82,95,100},当用二分 查找法查找值为 82 的结点时,经( )次比较后查找成功。 A.1 B.2 C.3 D.4 2.使用折半查找法时,要求查找表中各元素的键值必须是( )排列的。 A.递增或递减 B.递增 C.递减 D.无序 3.已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素 55 需要比较 ( )次。 A.3 B.4 C.5 D.6 4.有一个长度为 10 的有序表,按折半查找对该表进行查找,在等概率情况下查找成功 的平均比较次数为( )。 A.29/10 B.31/10 C.26/10 D.29/9 5.采用分块查找时,若线性表中共有 324 个元素,查找每个元素的概率相同,假设采用 顺序查找来确定结点所在的块,每块应分( )个结点最佳。 A.10 B.18 C.6 D.324 6.如果要求一个线性表既能较快地查找,又能动态适应变化要求,可以采用( ) 查找方法。 A.顺序 B.分块 C.折半 D.散列 7.关于哈希查找的说法正确的是( )。 A.除留余数法是最好的 B. 哈希函数的好坏要根据具体情况而定 C.删除一个元素后,不管用哪种方法处理冲突,都只需简单地把该元素删除掉 D.因为冲突是不可避免的,所以装填因子越小越好 8. 采用顺序查找方法查找长度为 n 的线性表时,每个元素的平均查找长度为( )。 A.n B.n/2 C.(n+1)/2 D.(n-1)/2 9.长度为 255 的表,采用分块查找法,每块的最佳长度是( )。 A.14 B.15 C.16 D.17 10.假设在有序线性表 A[1..20]上进行二分查找,则比较五次查找成功的结点数为( )。 A.4 B.5 C.6 D.8 练习题答案 单项选择题 1.C 2.A 3.C 4.A 5.B 6.B 7.B 8.C 9.B 10.B