Searching

静态查找

集合中记录是固定的,只有查找

顺序查找 Sequential Search

notion image
在第0个元素建立哨兵,从后向前查找。可以避免判断下标的位置。
时间复杂度O(N)

二分查找 Binary Search

假设n个数据元素关键字有序,并且是连续存放(数组),才可以进行二分查找。
notion image
时间复杂度O(NlogN)
举例
notion image
notion image
notion image
11个元素的二分查找判定树
 
notion image
notion image
notion image
notion image
notion image
  • 判定树上每个结点需要查找的次数刚好是所在的层数
  • 查找成功时的查找次数不会超过判定树的层数
  • n个结点的判定树的深度为[log2n]+1
  • ASL(Average Search Length)=(4*4+4*3+2*2+1*1)=3

动态查找

集合中记录是动态变化的,除查找,还可以插入、删除