Algorithm 简单算法教程?

Algorithm 简单算法教程?,algorithm,Algorithm,我想用一些非常基本的简单教程来学习算法。外面有吗?我听说过递归之类的东西,我想学好它。如有任何帮助,我们将不胜感激。麻省理工学院开放式课程(OCW)提供了他们的算法课程。这位教授是《算法导论》一书的作者之一,这本书是另一张海报推荐的 它假设你有离散数学的基本知识。如果你想学习算法,那是最好的选择 (来源:)递归是一种语言特性,而不是“算法”本身。所有递归都可以用适当的数据结构(如堆栈)来代替 我建议你去拿本书。算法的问题在于它是一个相对进步的主题。在学习排序之前,你首先需要学习简单的搜索,在学

我想用一些非常基本的简单教程来学习算法。外面有吗?我听说过递归之类的东西,我想学好它。如有任何帮助,我们将不胜感激。

麻省理工学院开放式课程(OCW)提供了他们的算法课程。这位教授是《算法导论》一书的作者之一,这本书是另一张海报推荐的


它假设你有离散数学的基本知识。

如果你想学习算法,那是最好的选择



(来源:)

递归是一种语言特性,而不是“算法”本身。所有递归都可以用适当的数据结构(如堆栈)来代替

我建议你去拿本书。算法的问题在于它是一个相对进步的主题。在学习排序之前,你首先需要学习简单的搜索,在学习最小生成树等之前,你需要进行排序。一本书会正确地对这些搜索进行排序,如果文本没有给你足够的信息,那么下一步互联网将是一个很好的选择。试试亚马逊,看看新用户的评论


但是,在尝试进行此操作之前,请确保学习了一种实现语言,在您了解该语言的工作原理之前,很难找出逻辑中的错误,而不是对给定命令序列的错误理解。

首先,我要看一看其中包含的基本数据结构和算法(包括链表和二进制搜索树)的优秀教程,排序和搜索算法。如果您想在此之后了解更多,我建议您按照增加复杂性、完整性和所需数学知识的顺序阅读以下书籍:

    (也可在C++和java中使用)

    • 递归实际上不是一种算法。既然你没有任何你感兴趣的具体内容,我建议你读一读,或者像其他人建议的那样,拿一本书。

      我建议你从排序算法开始。阅读相关内容,跳过O(n log n)部分,重点介绍插入排序、合并排序和快速排序的实现。熟悉。此外,还要学习一些基本知识,如向量、链表、堆栈、它们的实现以及它们的用途。(通常情况下,解决问题的算法需要合适的数据结构。)一旦你对不同的算法和数据结构有信心,你可以深入阅读更完整的论文,如

      至于递归,它本身并不是一个算法。相反,它是一些算法用来解决问题的一种技术,而问题可以自然地分解为子问题。将一个问题分解,分别求解子问题,然后合并它们的解以获得原始问题的解的技术称为“分而治之”或“分而治之”。(递归也是大多数编程语言的相关特性,它的基本意思是“调用自身的函数”。)


      “递归算法”中引用最多、最琐碎、最无用的例子是计算阶乘的例子。别介意。相反,请阅读这个问题,它允许一个简单而优雅的递归解决方案,并且再次学习一些排序算法,因为它们中的许多确实是递归的。

      我将从下面开始。该网站对不同类型的算法有一些非常好的解释,并且它引用了它使用的书籍和其他资源,这样你就可以领略到可用的内容。

      美国计算奥林匹克运动会有一个很好的算法,到目前为止,任何人都可以注册,而且它几乎是类格式的。读一点,做一个练习,读更多,做一个练习等等。

      对于那些评论《xyz》一书并不简单的人,我要指出算法不是一个简单的主题。你至少需要大学入门级的数学才能理解这些概念,还需要在适当的抽象层次上对计算进行推理的能力。如果你找到一本“傻瓜算法”的书,不要浪费你的钱

      我最喜欢的算法问题列表之一是,它们非常多样化,你可以多次解决同一个问题进行优化,你会发现许多社区(C++、C#、Python等)发布了针对每个问题的基准测试


      这真是太有趣了,极客乐趣

      TopCoder有一些好处。

      我的选择

      研究TopCoder问题的解决方案是学习算法的一个非常好的方法。阅读理论本身无助于解决SPOJ等网站上的问题。阅读有关算法介绍的书籍,coursera上也有一些在线课程

      如果您对教程感兴趣,请避免阅读上面推荐的CLRS书籍。它采用严格的理论方法来研究算法,这与教程方法非常不同

      你通过做算法来学习算法。因此,找到一个资源,提供算法问题和解决这些问题的指导。如果你想要一本教科书,请查阅《算法设计手册》,该手册也有一个在线版本。 如果您喜欢在线课程,可以提供基于python的算法课程,而Coursera则提供和

      因为重要的部分是练习算法,你可以跳过视频课程,只解决挑战。其他答案建议,一旦你擅长算法,你可以尝试一些挑战。开始时,您需要更多的指导,因此请查找提供算法挑战并帮助解决这些问题的资源。我就是为了这个目的而创作的。您可以从使用学习递归的基本原理开始


      汗学院开设了一门关于算法的优秀交互式自定进度课程-。

      +1因为这是一本关于算法的优秀书籍,但不是Anon所说的“非常基础的简单教程”。前6章是关于马修的