第八章 查找
顺序查找
原理:给定一个特定值,一个一个的与关键字比较,若有与特定值相等的关键字,则返回整个记录的信息或者该记录在表中的位置。若查找完都没有与特定值匹配的关键字,则返回一个空指针或者空记录。
性能分析:查找算法的平均查找长度(期望值)->每条信息的查找次数*该条信息被查找到的概率
在没有监视哨的时候,表长为n
在有监视哨的时候,表长为n+1,并且在监视哨的位置放置要查找的元素,如果查找成功则返回关键字位置,若不成功则返回监视哨的位置。并且下述的平均查找长度为没有监视哨的情况(即只考虑可以找到的情况)
缺点:查找的效率不高 优点:算法简单并且应用面广
备注:如果考虑到能找的与找不到两种情况的话,则平均查找长度为
折半查找
原理:给定一个顺序表,low、high、mid初始位置分别为首、尾、中,比较给定值t与mid位置的关键字:
性能分析:原理:根据折半查找构造一棵二叉树,根据二叉树的性质,分析查找某一个值的次数,此时二叉树的深度等于查找次数。
由上述的两个图可知:二分法查找在查找成功时进行比较的关键字个数最多不超过树的深度,而具有n个结点的判定树的深度为log2n+1。所以折半查找法在查找成功时和给定值进行比较的关键字个数至多为log2n+1