查找

查找的衡量方法为平均查找长度

顺序查找

基本思想

是从线性表的一端开始,逐个检查关键字是否满足给定的条件。若查找到某个元素的关键字满足给定条件,则查找成功,返回该元素在线性表中的位置。若查找到表的另一端,仍未找到符合给定条件的元素,则返回查找失败的信息。

折半查找

基本思想

就是二分法

散列表

基本概念

散列函数可能会把两个或两个以上的不同关键字映射到同一地址,称这些情况为冲突,这些发生碰撞的不同关键字称为同义词。 散列表建立了关键字和存储地址之间的一种直接映射关系。

散列函数不同,散列表不同

直接定址法

就是直接使用线性函数确定地址,一般不常见

除留余数法

确定一个数m,所有的数对设定的数m进行取余,取余后进行散列表的排序

解决冲突办法

如果有重复则将其使用向后推移并记录查找次数的方法进行储存,成为开放定址法,也可使用链表进行存储,称为拉链法

查找长度

散列表的查找长度取决于三个因素:散列函数、处理冲突的方法和装填因子。 装填因子a=表中记录数n/散列表长度m。 散列表的平均查找长度依赖于散列表的装填因子α,不直接依赖于n或m。 α越大,表示装填的记录越“满”,发生冲突的可能性就越大。