我经常被递归算法略微困扰,这些算法似乎需要神奇的飞跃(大量的缩减符号,由墨水短缺而产生)逻辑。
我意识到替代方法是简单地记住所有常见算法的Big O表示法,但在某一点上,该方法失败了。例如,我很高兴透露冒泡排序,插入排序,二叉树插入/删除,mergesort和quicksort的性能,但不要让我想出AVL树的性能或者顶部的Djikstra最短路径算法我的脑袋。
我在哪里可以获得:
示例:
为:
Sigma v e T(1 + cv)
可能的“好”等价物:
树中1个节点所需的工作量(1 +节点的子节点数),然后对原始节点为根的树中的每个元素执行一次。
旁边的评论:
我可以简单地观看每个算法的视频,因为没有办法让一个人的声音变成下标(或任何其他扭曲),但我怀疑与阅读文本描述相比,这会花费过多的时间。
更新
这是解决问题的一个来源:http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/(这解决了上面的#2)
答案 0 :(得分:1)
TopCoders有很多教程和详尽的解释。你试过了吗?
http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static
答案 1 :(得分:1)