分析递归算法

时间:2011-04-02 02:19:09

标签: algorithm analysis

我经常被递归算法略微困扰,这些算法似乎需要神奇的飞跃(大量的缩减符号,由墨水短缺而产生)逻辑。

我意识到替代方法是简单地记住所有常见算法的Big O表示法,但在某一点上,该方法失败了。例如,我很高兴透露冒泡排序,插入排序,二叉树插入/删除,mergesort和quicksort的性能,但不要让我想出AVL树的性能或者顶部的Djikstra最短路径算法我的脑袋。

我在哪里可以获得:

  1. 关于使用单词而不是大量符号的递归算法分析的讨论
  2. 练习问题以确认我新获得的理解是否正确
  3. 示例:

    为:

    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)

2 个答案:

答案 0 :(得分:1)

TopCoders有很多教程和详尽的解释。你试过了吗?

http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static

答案 1 :(得分:1)