基本概念
-
查找表:查找表是由同一类型的数据元素(或记录)构成的集合。
-
关键字:关键字是数据元素(或记录)中某个数据项的值,用它可以标识一个数据元素(或记录) 若此关键字可以唯一地标识一个记录 则称此关键字为主关键字 反之用以识别若干记录关键字为次关键字。
-
查找:查找是根据给定的某个值,在查找表中确定一个其关键字等于给定的记录或数据元素。若表中存在这样一个记录则称查找成功,反之查找失败。
-
动态查找表和静态查找表:若在查找的同时对表进行修改操作(如插入和删除操作)则称相应的表为动态查找表,否则称之为静态查找表。
线性表的查找
顺序查找:从表的一端开始,依次将记录的关键字和给定值进行比较若某个记录的关键字和给定值相等则查找成功,反之若扫描整个表之后仍未找到相等的记录则查找失败。
顺序查找时间复杂度:ASL=\((N+1)/2\) 空间复杂度:一个辅助空间——\(O(1)\)
折半查找:折半查找也称为二分查找,是一种效率较高的查找办法,但是折半查找要求线性表必须采用顺序存储结构 而且表中关键字有序排列。
折半查找的时间复杂度为\(O(\log_2 n)\)
分块查找
分块查找的平均查找长度
树表的查找
删除有三种情况:
平衡二叉树
散列表查找
补充:同义词:具有相同函数值的关键字对该散列函数来说称作同义词。
散列函数和散列地址:在记录的存储位置p和其关键字\(key\)之间建立一个确定的对应关系\(H\)使\(p=H(key)\)称这个对应关系H为散列函数 ,p为散列地址
散列函数构造方法
1.开放定址法
三种探测方法
2.链地址法
B-树和B+树
B-树的插入
B-树的删除
B+树