数据结构之三大查找
一.静态查找表
附:ASL(平均查找长度)=∑ (1-n) P(i)C(i)
P(i):查找表中第i个记录的概率(个人理解:比较一次正确概率)。
c(i):当给定值与表中记录相等时候,已经比较的次数,C(i)随过程不同。
1.顺序表的查找
条件:顺序表或者线性链表示的查找表
成功查找时平均查找长度:(n+1)/2
失败查找时平均查找长度:3(n+1)/4
2.有序表的查找
(1) 折半查找
成功查找时平均查找长度:[(n+1)㏒₂(n+1)]/2
(2)菲波那切查找
适用:关键字均匀,表长大,其平均性能比折半查找好
3.静态树表的查找(各记录查找概率不等时)
(1)静态最优查找树(权值高的在上面)
PH值最小。
代价太高,不讨论→_→
(2)次优查找树
PH值近似最小
具体实现字数太多,这里只列概念和框架,具体参见吴伟民办数据结构P223
4.索引顺序表的查找
(1)分块查找,又称索引顺序查找。
分块有序:第一块数据最小,依次增