静态查找
集合中记录是固定的,只有查找
顺序查找 Sequential Search
在第0个元素建立哨兵,从后向前查找。可以避免判断下标的位置。
时间复杂度O(N)
二分查找 Binary Search
假设n个数据元素关键字有序,并且是连续存放(数组),才可以进行二分查找。
时间复杂度O(NlogN)
举例
11个元素的二分查找判定树
- 判定树上每个结点需要查找的次数刚好是所在的层数
- 查找成功时的查找次数不会超过判定树的层数
- n个结点的判定树的深度为[log2n]+1
- ASL(Average Search Length)=(4*4+4*3+2*2+1*1)=3
动态查找
集合中记录是动态变化的,除查找,还可以插入、删除