Algorithm 递归算法分析

Algorithm 递归算法分析,algorithm,analysis,Algorithm,Analysis,我经常被递归算法稍微难倒,这些算法似乎需要逻辑上的神奇飞跃(由于墨水短缺而产生的大量收缩符号) 我意识到另一种方法是简单地记住所有常用算法的大O符号,但在某一点上,这种方法失败了。例如,我很乐意透露冒泡排序、插入排序、二叉树插入/删除、合并排序和快速排序的性能,但不要让我在脑子里想AVL树或Djikstra最短路径算法的性能 我在哪里可以得到: 用文字代替大量符号的递归算法分析讨论 练习问题以确认我新获得的理解实际上是正确的 例如: 坏的: 西格玛v e T(1+cv) 可能的“良好”等效物:

我经常被递归算法稍微难倒,这些算法似乎需要逻辑上的神奇飞跃(由于墨水短缺而产生的大量收缩符号)

我意识到另一种方法是简单地记住所有常用算法的大O符号,但在某一点上,这种方法失败了。例如,我很乐意透露冒泡排序、插入排序、二叉树插入/删除、合并排序和快速排序的性能,但不要让我在脑子里想AVL树或Djikstra最短路径算法的性能

我在哪里可以得到:

  • 用文字代替大量符号的递归算法分析讨论
  • 练习问题以确认我新获得的理解实际上是正确的
  • 例如:

    坏的:

    西格玛v e T(1+cv)

    可能的“良好”等效物:

    树中1个节点所需的工作量(即1+节点子节点的#),然后对树中以原始节点为根的每个元素执行一次

    旁注:

    我可以简单地观看每一个算法的视频,因为没有办法让一个人的声音变成一个下标(或任何其他曲解),但我怀疑与阅读文本描述相比,这会花费过多的时间

    更新:


    以下是解决问题的1个来源:(这解决了上面的2个问题)

    TopCoders有大量的教程和详尽的解释。你试过了吗


    要“正式”回答这个问题

    样本问题的来源:


    对CS分析的解释:。

    你应该学会用符号来表达这些想法。它高效、精确,而且是几乎每个人都使用的语言。@Jason:如果你是cs学生或数学和理论的焦点。对于一个好的程序员来说,理解它的意思就足够了。为了让记谱和分析变得舒适(实际上比大多数人都好),我推荐这本好书。仅前两章就足够了(可能还有最后一章),但它写得如此之好,以至于很难不去阅读其他章节。我应该指出,我在最初的帖子中大大低估了自己D我很会处理西格玛、亚历夫·努尔斯等东西。我只是对教材在textbok中的呈现方式有点问题,这是我获得理学学士学位时入门课所要求的(因此我对墨水短缺的评论)。他们关于递归(,)的特别教程虽然很好,不要深入分析的太多细节。我已经复习了教程,必须承认几乎没有关于分析的内容。