第8章查找8
1查找的基本概念8
2基于线性表的查找法8
3基于树的查找法8
4计算式查找法——哈希法8
1查找的基本概念列表:由同一类型的数据元素(或记录)构成的集合,可利用任意数据结构实现
关键字:数据元素的某个数据项的值,用它可以标识列表中的一个或一组数据元素
如果一个关键字可以唯一标识列表中的一个数据元素,则称其为主关键字,否则为次关键字
当数据元素仅有一个数据项时,数据元素的值就是关键字
查找:根据给定的关键字值,在特定的列表中确定一个其关键字与给定值相同的数据元素,并返回该数据元素在列表中的位置
若找到相应的数据元素,则称查找是成功的,否则称查找是失败的,此时应返回空地址及失败信息,并可根据要求插入这个不存在的数据元素
显然,查找算法中涉及到三类参量:①查找对象K(找什么);②查找范围L(在哪找);③K在L中的位置(查找的结果)
其中①、②为输入参量,③为输出参量,在函数中,输入参量必不可少,输出参量也可用函数返回值表示
平均查找长度:为确定数据元素在列表中的位置,需和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度
对于长度为n的列表,查找成功时的平均查找长度为:niiinnCPCPCPCPASL12211其中Pi为查找列表中第i个数据元素的概率,Ci为找到列表中第i个数据元素时,已经进行过的关键字比较次数
由于查找算法的基本运算是关键字之间的比较操作,所以可用平均查找长度来衡量查找算法的性能
查找的基本方法可以分为两大类,即比较式查找法和计算式查找法
其中比较式查找法又可以分为基于线性表的查找法和基于树的查找法,而计算式查找法也称为HASH(哈希)查找法
2基于线性表的查找法8
1顺序查找法顺序查找法的特点是,用所给关键字与线性表中各元素的关键字逐个比较,直到成功或失败
存储结构通常为顺序结构,也可为链