算法
文章平均质量分 79
vivi
这个作者很懒,什么都没留下…
展开
-
锁无关的(Lock-Free)数据结构(一)
锁无关的(Lock-Free)数据结构在避免死锁的同时确保线程继续在Generic沉默了一期之后(研究生的学业总是使人不得不投入百分之百的精力),这一期文章的可写内容突然多得令人似乎有点无所适从.例如,其中之一就是关于构造函数的讨论,特别是转发构造函数(forwarding co转载 2011-07-14 08:55:42 · 2817 阅读 · 0 评论 -
递归算法的时间复杂度分析
在算法分析中,当一个算法中包含递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比较常用的有以下四种方法: (1)代入法(Substitution Method)转载 2011-07-28 21:57:24 · 2583 阅读 · 0 评论 -
递归和迭代的选择
---------------------------------------------------------------------------作者:拒绝潜水的鱼出处:http://slave2.cnblogs.com/归与迭代都是基于控制结构:迭代用重复结构,而转载 2011-08-02 17:05:39 · 3233 阅读 · 1 评论 -
链表经典问题汇总
收集了一下链表常见的面试为题:1、如何判断一个单链表有环2、如何判断一个环的入口点在哪里3、如何知道环的长度4、如何知道两个单链表(无环)是否相交5、如果两个单链表(无环)相交,如何知道它们相交的第一个节点是什么6、如何知道两个单链原创 2011-08-09 20:45:05 · 14041 阅读 · 4 评论 -
分层遍历二叉树,每层输出为一行
如果只是分层遍历二叉树并打印出所有元素,那么使用队列来实现BFS是最好的选择。但是这里要求,每层元素打印为一行,所以我们必须知道每层元素的开始和结束是什么,这种情况下,使用数组或者vector容器是更好的选择,使用两个变量来标识每一层的开始和结束,控制每一层元素的访问。代码如原创 2011-08-16 09:29:32 · 7224 阅读 · 0 评论 -
编程之美-重建二叉树扩展问题1 2
编程之美3.9:重建二叉树扩展问题1:如果前序和中序遍历的字母有重复的,那么怎么构造所有可能的解呢?扩展问题2:如何判断给定的前序遍历和中序遍历的结果是合理的?思路:问题1:搜索所有可能的情况,并调用扩展问题2的解决方案,判断此情况是否合理(剪枝操作),如原创 2011-08-15 14:43:25 · 5108 阅读 · 0 评论 -
后缀树【Suffix Tree】
在pongba的讨论组上看到一道Amazon的面试题:找出给定字符串里的最长回文。例子:输入XMADAMYX。则输出MADAM。这道题的流行解法是用后缀树(Suffix Tree)。这坨数据结构最酷的地方是用它能高效解决一大票复杂的字符串编程问题:在文本T里查询T是否包含子串P(复杂度同流行的KMP相当)。文本T里找出最长重复子串。比如abcdabcefda里abc同da都重复出现,而最长转载 2011-12-10 18:14:37 · 2461 阅读 · 0 评论