摘要:
动态规划算法和分治算法类似,不同在于分解为子问题并不是互相独立的,而是一步步逼近最终答案 动态规划可以通过填表的方式逐步推进,而动态规划算法最佳实现就是背包问题 背包问题就是最大,最小价值的问题,即怎么买(装,放)可以达到最大,最小价值 public class KnapsackProblem { 阅读全文
摘要:
分治算法的核心是把一个大的问题分解成若干个小问题,互相独立,与原问题形式相同的子问题,若小问题规模较小则直接解决,否则递归解决各个小问题,然后将各个子问题的解合并为原问题的解 像快速排序,归并排序等问题都用到了分治算法思想,其中比较著名的问题是解决汉诺塔 public class Hanoitowe 阅读全文
摘要:
平衡二叉树是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树 平衡二叉树解决了二叉排序树的查询效率问题(连续递增数据创建二叉排序树时),平衡二叉树的实现方法有红黑树,AVL树,替罪羊树等 平衡二叉树的难点在于左右旋转,这里用 new 代表新节点 old 代表旧 阅读全文