摘要:
参考书籍《Java数据结构与算法》 第12章 堆1.堆的引入优先级队列 和堆2.堆的特点①堆是完全二叉树②堆一般用数组来保存③堆中的每个节点都满足一定的条件,也就是当前节点的关键值必须大于等于(或者小于等于)它的子节点的关键值3.堆的操作(以最大堆为例)(1)移除最大的节点从堆中删除节点的过程:删除的一定是堆的根节点,删除之后将堆数组的最后一个元素bottom放在根节点的位置,然后比较bottom和它的孩子中key值较大的那个child,如果那个孩子的key值更大,那么就交换bottom和child节点的位置,同理,按照上面的步骤继续比较,直到bottom处在满足堆条件的位置上。这里有一个向下 阅读全文
摘要:
参考书籍《算法设计与分析》 王晓东 动态规划1.问题描述(注:是所有的三角形的权值之和,不是只计算边和弦的权值之和)2.分析3.编码实现:/*** @Author:胡家威* @CreateTime:2011-11-10 下午12:31:16* @Description:凸多边形的最优三角剖分*/package ex2;public class Triangulation {private int n;// n多边形private int[][] weight;// 边的权值数组public Triangulation(int n) {this.n = n;this.weight = new i 阅读全文