摘要: BinaryHeap() 创建一个新的,空的二叉堆。 insert(k) 向堆添加一个新项。 findMin() 返回具有最小键值的项,并将项留在堆中。 delMin() 返回具有最小键值的项,从堆中删除该项。 如果堆是空的,isEmpty() 返回 true,否则返回 false。 size() 阅读全文
posted @ 2017-07-24 11:44 Erick-LONG 阅读(896) 评论(0) 推荐(0) 编辑
摘要: 性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k - 1个结点(k>0)性质3: 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;性质4:具有n个结点的完全二叉树的深度必为 log2(n+1)性质5:对完全 阅读全文
posted @ 2017-07-24 09:04 Erick-LONG 阅读(528) 评论(0) 推荐(0) 编辑
摘要: (非递归实现) (递归实现) 最优时间复杂度:O(1) 最坏时间复杂度:O(logn) 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 阅读全文
posted @ 2017-07-24 08:10 Erick-LONG 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 最优时间复杂度:O(nlogn) 最坏时间复杂度:O(nlogn) 稳定性:稳定 将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 阅读全文
posted @ 2017-07-24 07:47 Erick-LONG 阅读(217) 评论(0) 推荐(0) 编辑