摘要:
摘要究竟什么时候才需要动态规划?这里介绍两个要素:最优子结构,重叠子问题。另外,还要分析一种方法——备忘录,充分利用重叠子问题性质。最优子结构利用动态规划求解时第一步是描述最优解的结构。当一个问题具有最优子结构时,提示我们动态规划可能会适用。在寻找最优子结构时,可以遵循一种共同的模式:1)问题的一个...
阅读全文
posted @ 2014-12-04 13:12
Rancher
阅读(216)
推荐(0)
编辑
摘要:
摘要整理了矩阵链乘法的动态规划思路。题目给定n个要相乘的矩阵构成的序列,其中 i=1, 2, ..., n,矩阵Ai的维数为pi-1*pi。计算乘积 A1A2...An的最小代价的矩阵相乘循序。补充:矩阵乘法满足结合律,例如,乘积 A1A2A3A4共有五种不同加括号结合形式。不同的结合形式极大的影响...
阅读全文
posted @ 2014-12-04 10:56
Rancher
阅读(288)
推荐(0)
编辑
摘要:
本答案部分参考SICP 解题集byhuangz,和SICP学习笔记和习题解答byKelvin。2.2.2层次性结构计算叶节点用这个递归方程计算就好了:(leaves tree) = (leaves (car tree)) + (leaves (cdr tree)),(leaves leave) = ...
阅读全文
posted @ 2014-12-03 13:34
Rancher
阅读(322)
推荐(0)
编辑
摘要:
摘要本节在前两节(树的旋转,2-3-4树)的基础上,讨论红黑树的性质及实现。初识红黑树简介通过对2-3-4树的分析,我们认识到其直接实现比较复杂,时间开销可能会比普通BST更大。因而我们通过对普通BST增加一些信息,实现2-3-4树。这里采用的一种高效的方法,就是红黑树。基本思想是在每个结点中添加一...
阅读全文
posted @ 2014-11-30 19:17
Rancher
阅读(482)
推荐(0)
编辑
摘要:
摘要:普通BST并不能保证在多次操作后仍然保持良好的性能。因此我们需要一种BST,是的每次插入和搜索的开销是该树大大小的对数函数。2-3-4树就是这样一种能够保持平衡的BST。2-3-4树介绍为了保证BST是平衡的,我们需要树具备一定的灵活性。2-3-4树选择的方法是令结点可以容纳一个以上的关键字。...
阅读全文
posted @ 2014-11-30 17:05
Rancher
阅读(447)
推荐(0)
编辑
摘要:
摘要:本文讨论维护树的平衡的重要手段之一:旋转。掌握旋转是掌握高级树结构的基础。单旋转:如图:X, Y为带旋转结点,a, b, c为这两个结点的子树。图中从左到右顺序为左旋转,反之为右旋转。不难得出,旋转的关键在于处理好指针的重定向。于是我们容易得出旋转的过程:过程看似复杂,其实就是重新链接受旋转影...
阅读全文
posted @ 2014-11-30 12:12
Rancher
阅读(637)
推荐(0)
编辑
摘要:
摘要本文主要讨论的内容包括:BST的性质以及基本操作分析。作为最基本的数据结构,二叉查找树(后文记为BST)本身不仅易于理解,代码精简,而且通过添加不同的特性,可以实现许多高级的数据结构,例如:添加颜色信息,升级为红黑树;添加高度和平衡信息,升级为AVL树;更改节点数量,成为2-3-4树等更为复杂的...
阅读全文
posted @ 2014-11-30 11:02
Rancher
阅读(518)
推荐(0)
编辑