数据结构与算法
Spider--Man
灵魂画家
展开
-
红黑树
普通二叉搜索树作为数据存储工具可以快速的找到一个给定关键字的数据项,并可快速插入和删除数据项;如果树中插入随机数据,执行很好,但插入有序数据,速度会变慢,并会导致非平衡,其快速查找指定数据项的能力丧失了。因此引入红-黑树,解决非平衡树问题,其本身是增加某些特点的二叉搜索树。红黑树的插入方法:自顶向下插入:自底向上插入:当树没有分支时,最不平衡,就会变成一个链表,变成转载 2015-03-09 21:24:52 · 458 阅读 · 0 评论 -
二叉树
树同时具有有序数组和链表的优点,查找数据项的速度和在有序数组中查找一样快,插入和删除数据项的速度和链表一样快。路径:引用节点:实体关键字:数据域,用于查询或其他操作父节点,子节点,叶节点,子树,访问,遍历,层二叉搜索树:一个节点的左子节点的关键字值小于这个节点,右子节点关键字值大于或等于这个父节点。非平衡树:大部分节点在根的一边或者另一边。原因是由数转载 2015-03-09 21:23:20 · 408 阅读 · 0 评论 -
js动态规划与递归
动态规划:从底部开始解决问题,将所有 小问题解决掉,然后合并成一个整体解决方案,从而解决掉整个大问题 递归:从顶部开始将问题分解,通过解决掉所有分解的小问题来解决整个问题计算斐波那契数列function recurFib(n){ if(n<2) { return n } else { return recurFib(n-1) + recurFib(n原创 2017-03-29 16:29:32 · 1520 阅读 · 0 评论 -
js贪心算法
贪心算法:寻找最优解的过程,目的是得到当前最优解部分背包问题:固定容积的背包能放入物品的总最大价值物品 A B C D 价格 50 220 60 60 尺寸 5 20 10 12 比率 10 11 6 5按比例降序尽可能多放入物品function gree原创 2017-03-29 18:11:37 · 2694 阅读 · 1 评论 -
js顺序查找与二分查找
顺序查找适合数据随机排列的列表O(N) 二分查找适合排序列表O(log2n)顺序查找function seqSearch(arr, data) { var returnIndex = -1 var max = arr[0] var min = arr[0] arr.forEach((cur, index) => { if (cur === data)原创 2017-03-29 18:30:35 · 393 阅读 · 1 评论 -
100. Same Tree
Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.判断两个二叉树是否相等,相等时结构相同原创 2017-03-29 21:46:20 · 172 阅读 · 0 评论