第一部分查找二分查找,Hash表•二分查找考点–条件:顺序存储,按关键字有序–时间复杂度分析(log2n)–最多要比较的次数(㏒2n+1),理由:n个结点的判定树的深度与n个结点的完全二叉树深度相同
–折半查找的二叉判定树1、请问,满足什么条件的顺序表可以实施二分查找,在满足该条件的n个记录的顺序表中进行二分查找,最大的比较次数是多少
答:数据元素初始状态按关键字有序最大比较次数应为㏒2n+12、设顺序表为{4,6,12,38,40,67,80}用二分法查找72,需要进行的比较次数为()A、3B、n-1C、n+1D、n答案:A例如:3、试用于折半查找的表的存储方式及元素排列要求是顺序存储,按关键字有序
4、对有10个元素的有序表,采用二分查找,需要比较4次方可找到的元素个数为3
5、设有序顺序表中的元素依次为017,094,154,170,275,503,509,512,553,612,677,765,897,908
试画出对其进行折半搜索时的判定树,并计算搜索成功的平均搜索长度
•Hash查找和Hash表的创建–常用Hash函数和解决冲突方法–Hash表的创建与平均查找长度的计算–时间复杂度的分析(不依赖问题的规模,与解决冲突的方法以及hash表的装填因子有关)例如1、对包含N个元素的散列表进行检索,平均检索长度是()A、O(log2N)B、O(N)C、不直接依赖于ND、上述三者都不是答案:C2、已知待散列存储的关键字序列为(4,15,38,49,33,60,27,71),哈希函数为H(key)=keyMOD11,哈希表HT的长度为11,采用二次探测再散列法(d=12,-12,22,-22,32,…)解决冲突,试构造此哈希表,并求出在等概率情况下查找成功的平均查找长度
位置012345678910关键字336027415387149冲突次数04501163查找时比