算法和数据结构

时间:2011-03-31 18:56:52

标签: c++ algorithm data-structures

我目前正处于第一个算法和数据结构类的中间位置。不幸的是,我的老师不是很好,我们使用的在线书籍在描述中非常模糊(http://people.cs.vt.edu/~shaffer/Book/)到目前为止,我设法保持A,主要是由于运气和常识,但它已经开始现在我们正在处理排序,搜索和更高级的数据结构(如图形),从而变得更加困难。

我想知道是否有任何在线资源可以帮助我更好地学习这个主题。我理解了很好地了解这个主题的重要性,特别是在编写高效的代码时以及在接受工作面试时,所以我愿意接受任何可以帮助我更好地学习和理解算法和数据结构的建议。

7 个答案:

答案 0 :(得分:6)

答案 1 :(得分:3)

你可能不会喜欢我的回答,但我希望你能做的最有成效的事情就是努力工作。你经常找到你想要的东西。所以,如果你把你的导师视为不合标准,你的书也毫无价值;你会得到很少的东西。如果您寻找教师的优势并从书中获得所需,您将走得更远。我浏览了你的文字,这对我来说似乎并不那么模糊。绝对看看其他答案中提供的参考文献,但也要对课程持肯定态度。

答案 2 :(得分:2)

我特别喜欢这本书:福特和Topp的Data Structures with C++ Using STL

它们包含了相当多的源代码(所有这些代码都可以从他们的网站上下载),并且很好地让读者通过STL中实现的许多数据结构的全面细节实现,如以及STL中不存在的几个数据结构(如图形)。您将从更基本的数据类型中很好地理解每个数据结构的内部组成,以及您自己需要构建一些内容的通用的足够参考,您将非常了解这些数据的具体方式数据结构可以由更简单的数据类型(在一般意义上......,即这些想法可以转换为任何其他语言)以及如何在真实环境中应用它们来创建和组合。

这不是STL本身的参考,因为它是关于如何实现STL中数据结构的参考(尽管是以更简单的形式......你不必担心分配器,和STL代码中的许多其他辅助工具一样,对初学者来说可能会让人难以阅读和理解。)

希望这有帮助,

杰森

答案 3 :(得分:1)

让自己成为Skiena的The Algorithm Design Manual。这是一本了不起的书,真正帮助我理解算法和数据结构。

答案 4 :(得分:1)

就个人而言,我总是发现学习东西的最好方法是尝试构建它。无论是算法,新设计模式还是数据结构,在代码中创建该东西的过程始终是我学到的最好的方法。

答案 5 :(得分:0)

我见过的最好的学习算法和数据结构的书是麻省理工学院的算法导论。无论你的水平如何,这对你都有好处,对初学者,中级和高级学习者都有好处。

答案 6 :(得分:0)

我发现位于http://www.heppenstall.ca/academics/doc/242/的幻灯片非常有用。它们涵盖了广泛的数据结构和基本算法,并包含可用图片以帮助了解正在发生的事情。

我不知道是谁首先创建了各种幻灯片,或者谁可能维护最新版本 - 他们似乎找到了通往许多不同学校服务器的路径,并且至少可以使用PDF和PPT格式。< / p>