我想阅读一本关于数据结构和算法的书,但我想知道离散数学中是否有任何特定的主题被认为是理解数据结构书中提供的材料的先决条件。
P.S我是自学成才的程序员;我没参加任何计算机科学课程。答案 0 :(得分:8)
“离散数学”更像是一个流行语,其中包含十几个不同主题(逻辑,算法,计算理论,数论,数字设计等)的基础知识,这些主题与编程略有关系。阅读一本离散的数学书与阅读关于所有这些主题的第一章或第二本书大致相同。
要理解的最重要的是布尔逻辑,如果你是自学成才的话,你可能已经很擅长了;算法也很重要。计算的理论是相当有趣的,但除非你真的 进入算法,或者想要编写自己的解析器,否则不是很有用。如果你想进入密码学,数理论是很好的学习。
您无需了解任何有关数据结构的内容。
答案 1 :(得分:3)
数学归纳可能是没人提到过的最重要的概念。对于理解和证明树和其他归纳定义数据结构的算法属性至关重要。
BTW,关于这个主题的经典教科书是Concrete Mathematics: A Foundation for Computer Science,由Ronald Graham,Donald Knuth和Oren Patashnik撰写。但生活太短暂,无法阅读教科书,因此您可以阅读教科书。潜入。如果你发现自己迷路了,那就去寻找你需要的背景。
答案 2 :(得分:1)
继续阅读数据结构书,你会没事的。
答案 3 :(得分:1)
在算法/数据结构课程中派上用场的介绍性离散数学书籍中常见的一些主题是:
此刻可能有一些人逃脱了我。我离开大学已经有一段时间了。
话说回来,一本好的数据结构/算法书通常在大多数其他章节中都有一两个介绍章节,旨在让读者快速了解一些相关的离散数学主题。但IMO,如果你有时间和倾向,最好知道这些东西只是为了更透彻地理解。否则,如果你有一本好书,我认为你不会发现自己陷入困境。
PS: 我提到的主题来自这两本书: 格里马尔迪的“离散和组合数学:应用介绍” 罗森的“离散数学及其应用” (“具体数学”对于只读数据结构来说太沉重了)
答案 4 :(得分:0)
对于数据结构和算法,我认为您通常希望了解与计算系列限制相关的微积分领域。反过来,这涉及一些代数知识。
您需要知道如何计算系列限制才能计算算法复杂度。
答案 5 :(得分:0)
如果您不仅对数据结构感兴趣,而且对所有计算机科学领域感兴趣,离散数学包括布尔代数及其应用程序,它是计算机体系结构和汇编语言的基础,但我不认为它与数据结构和算法