数据结构与算法
「已注销」
她为什么不问江波
展开
-
排序算法
排序算法 - Java实现快速排序最经典实现,worst case为O(n2)O(n2)O(n^2)。但随机化后最坏情况也能达到O(nlog(n))O(nlog(n))O(n\log(n))。 在这里提一下二叉搜索树(BST),它与快速排序有着民曲同工之妙。 比如:对6,10,13,5,8,3,2进行排序 快排,以6为key,小于6的放到左边,其他放到右边 6 ...原创 2018-04-14 22:37:00 · 149 阅读 · 0 评论 -
二叉树的后序遍历 - 非递归版java实现
二叉树的后序遍历二叉树的先序遍历 | 二叉树的中序遍历 | 二叉树的层序遍历 主要思想:首先遍历root根节点的所有左节点,并依次入栈。对出栈的元素,如果没有右儿子或者虽然有右儿子但右儿子已完成遍历,即可完成出栈;否则,再次入栈,并把右儿子入栈,遍历右儿子的所有左儿子。版本一import java.util.ArrayList;import java.util.Sta...转载 2018-04-11 14:51:20 · 5071 阅读 · 0 评论 -
二叉树的先序遍历 - 非递归版java实现
二叉树的先序遍历二叉树的中序遍历 | 二叉树的后序遍历 | 二叉树的层序遍历 先对root根节点入栈,然后根节点出栈,将根节点的右儿子先入栈,再将根节点的左儿子入栈。import java.util.ArrayList;import java.util.Stack;public class Solution { public ArrayList<Integer&...原创 2018-04-11 15:42:46 · 441 阅读 · 0 评论 -
二叉树的中序遍历 - 非递归版Java实现
二叉树的中序遍历二叉树的先序遍历 | 二叉树的后序遍历 | 二叉树的层序遍历 cur == null 说明没有左子树(叶子节点)或者左子树已经完成遍历,可以开始遍历右子树了。 在我的另一篇文章《二叉树的后序遍历》所给出的版本二中有类似的用法。 public ArrayList<Integer> inorderTraversal(TreeNode root) {...原创 2018-04-12 14:40:48 · 585 阅读 · 0 评论 -
leetcode心得 - 动态规划篇
动态规划(dynamic programming)word-break题目描述 Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. ...原创 2018-04-18 08:40:07 · 663 阅读 · 0 评论 -
二叉树的层序遍历 - 非递归版Java实现
二叉树的层序遍历二叉树的先序遍历 | 二叉树的中序遍历 | 二叉树的后序遍历 基于队列(Queue)实现的自上而下、从左到右按层遍历二叉树 记录每一层节点的个数n,并出栈n次,这样就可以遍历完一层。 public ArrayList<Integer> levelTraversal(TreeNode root) { if (root == ...原创 2018-04-12 15:19:10 · 573 阅读 · 0 评论