数据结构与算法
一圈儿的云
爱摇滚,爱编程,爱java,喜欢钻研算法,和所有软件工程师一样,希望凭自己的努力改变世界
展开
-
Evaluate Reverse Polish Notation & LeetCode 02
Evaluate Reverse Polis原创 2014-04-14 22:18:08 · 451 阅读 · 0 评论 -
后序遍历 Binary Tree Postorder Traversal -- LeetCode
二叉树的后序遍历我们还是介绍三种方法,第一种是递归,第二种是迭代方法,第三种是用线索二叉树。 递归还是那么简单,算法的时间复杂度是O(n), 而空间复杂度则是递归栈的大小,即O(logn)。代码如下:public ArrayListInteger> postorderTraversal(TreeNode root) { ArrayListInteger> res = new ArrayLi转载 2014-04-15 17:49:19 · 677 阅读 · 0 评论 -
堆排序 HeapSort
堆排序 HeapSort二叉堆是一组能够用堆有序的完全二叉树排序的元素,并在数组中按照层级存储(不适用数组的一个位置,下标从1开始)!二叉堆可以很好的实现优先队列的基本操作。优先队列是一种抽象的数据结构,主要有insert(插入元素) 和 delMax(删除最大操作)两个标志性操作。在一个堆中,位置k的节点的父节点的位置是是k/2,而他的两个子节点的位置则分别是2k,2k+1!利用数组中无需指针即可原创 2015-10-25 16:38:27 · 565 阅读 · 1 评论 -
二维数组中二分查找
二维数组中二分查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路从左下角(或者右上角) 开始和目标值比较,如果相等,直接返回true,查找成功;如果大于,则列值–;如果小于,则二维索引++;如果当数组遍历到左上角(右下角),如果循环执行完毕,则返回false。pub原创 2015-10-29 20:26:46 · 2836 阅读 · 0 评论