一、静态最优查找树
概念:
1、首先明确静态树的概念。查找过程中树的结构不发生改变。
2、假设每个点要求被查找的概率是p[i],权值为C[i],这里可以理解为查找到时的层数;
3、PH=sigm{P[i]C[i]}
4、PH最小的树是静态最优查找树;
缺点:花费的时间代价比较高
优化方法:次优查找树
二、次优查找树
构建方法:
1、假设一个按关键字有序的记录序列
(r[l],r[l+1]........r[h])相应的权值是w[i]
2、P[i]=|sum(w[l]+w[l+1]....w[i])-sum(w[i+1]+w[i+2]+w[i+3].....+w[h])|
O(n)的复杂度记忆化实现
取值最小的P[i],以i为根节点,再分别以{r[l],r[l+1],r[l+2]....r[i-1]}和{r[i+1],[i+2].....r[h]}建立次优二叉树