一、次优查找树
(1).使用背景:
- 对于“等概率”的有序表的查找,折半查找性能最佳;
- 但对于“概率”不等时,折半查找往往效率不佳;
(2).基本概念:
- 引入权值,将“概率p”转化为权值w,w=p*常数c;
- 如果只考虑查找成功的情况,则查找性能最佳的判定树是其带劝内路径长度之和PH值最小的二叉树,称为静态最优查找二叉树;
- PH=∑w*h;w为结点a的权值,h为结点a在二叉树上的层数;
- 由于构造最优查找树代价高,通常取次优查找树;
(3)构造方法
- 已知有序序列(R1,R2,R3,,,,,Rn),
- 其关键字为R1.key,R2.key,R3.key,,,Rn.key
- 对应权值为W1,W2,W3,,,,Wn
- 取△Px=| ∑(1到x-1)W-∑(x+1到n)|
- 再对(R1,R2,,,Rx-1)和(Rx+1,,,,,Rn)构造次优查找树;
- 例子1: