简述一下问题:假设有一颗词典二叉树,我们从中查找需要的单词,使用红黑树或平衡树这样的数据结构总是可以在O(lgN)时间内进行查找,但单词的出现频率是不同的,我们给每个单词加上一个搜索概率,然后通过这些带有概率的节点计算出整棵树的搜索期望E(T),找到一个最优节点作为根节点,重新建立一颗二叉树,称为最 ...
分类:
其他好文 时间:
2018-02-17 10:24:48
阅读次数:
115
OBST问题的解法是动态规划,用到了3层循环, 第一层循环变量是子树的节点个数 l 第二层循环的变量是子树的起点位置i,i即是子树的左边界,j是子树的右边界 第三层循环的变量是子树的根节点位置r ...
分类:
其他好文 时间:
2016-11-27 07:34:49
阅读次数:
133
使用二叉搜索树可以节约搜索的时间。搜索某个节点的时间,等于该节点的深度+1。 希望文本中出现频繁的的单词和根节点较近,较少出现的单词最好能离根节点越远越好。 最优二叉搜索树的期望搜索代价最低。但是最优二叉搜索树的高度不一定是最矮的。 考虑搜索失败的问题。如果要搜索的值没有在二叉搜索树里面,就表示搜索...
分类:
其他好文 时间:
2015-09-01 10:34:25
阅读次数:
130
本文给出了动态规划的简要定义、适用场景、算法实现。并给出了四种经典动态规划:钢条切割求最大收益问题、矩阵链相乘求最小乘法次数问题、最长公共子序列问题、求最小的搜索代价的最优二叉搜索树的c++代码实现。定义
性质 适用条件
算法实现过程首先观察问题是否满足最优子结构性质
写出递归等式递归的定义子问题的最优解
求解子问题的最优解
构造最优解
四个经典问题的cpp实现
1 钢条切割
2 矩阵链相乘
3...
分类:
编程语言 时间:
2015-06-22 11:07:25
阅读次数:
205
我们在之前也讨论过动态规划的例子:
动态规划原理:http://blog.csdn.net/ii1245712564/article/details/45040037
钢条切割问题:http://blog.csdn.net/ii1245712564/article/details/44464689
矩阵链乘法问题:http://blog.csdn.net/ii1245712564/arti...
分类:
其他好文 时间:
2015-04-20 18:40:28
阅读次数:
372
基础: 1.LCS 2.LIS 3.最短编辑距离 4.最优二叉搜索树 5.最优三角剖分 6.Bellman-ford算法 7.0-1背包 8.各种扩展的背包 9.最大子段和难: 1.树形dp 2.先排序后dp 3.基于强连通分量的dp---插头dp 4.dp加速---四边形...
分类:
其他好文 时间:
2015-04-15 21:26:29
阅读次数:
121