我想读一本关于数据结构和算法的书,但我想知道离散数学中是否有任何特定主题被认为是理解数据结构书中介绍的材料的先决条件。
PS 我是自学成才的程序员;我没有参加任何计算机科学课程。
我想读一本关于数据结构和算法的书,但我想知道离散数学中是否有任何特定主题被认为是理解数据结构书中介绍的材料的先决条件。
PS 我是自学成才的程序员;我没有参加任何计算机科学课程。
“离散数学”更像是一个流行词,其中包含十几个与编程无关的主题(逻辑、算法、计算理论、数论、数字设计等)的基础知识。阅读一本离散数学书籍与阅读有关所有这些主题的书籍的第一章或两章大致相同。
要理解的最重要的事情是布尔逻辑,如果你是自学的,你可能已经很擅长了;算法也很重要。计算理论相当有趣,但除非你真的很喜欢算法,或者想编写自己的解析器,否则它并没有真正的用处。如果你想学习密码学,数论是很好的学习。
你不需要知道任何这些东西来阅读数据结构。
数学归纳法可能是尚未有人提及的最重要的概念。它对于理解和证明树和其他归纳定义的数据结构上的算法的属性至关重要。
顺便说一句,关于这个主题的经典教科书是Ronald Graham、Donald Knuth 和 Oren Patashnik的《具体数学:计算机科学的基础》 。
但是生命太短暂,不能仅仅为了阅读教科书而阅读教科书。潜入。如果你发现自己迷路了,去找你需要的背景。
通常在算法/数据结构课程中派上用场的介绍性离散数学书籍中找到的一些主题是:
此刻可能还有其他一些人在逃避我。我离开大学已经有一段时间了。
话虽如此,一本好的数据结构/算法书籍通常会在大多数其他章节中包含一两个介绍性章节和小节,旨在让读者快速了解一些相关的离散数学主题。但是IMO,如果您有时间和兴趣,最好了解这些东西只是为了有一个更透彻的了解。否则,如果您有一本好书,我认为您不会陷入困境。
PS:我提到的主题来自这两本书:Grimaldi 的“离散和组合数学:应用介绍” 罗森的“离散数学及其应用”(“具体数学”对于数据结构来说太重了)
继续阅读数据结构书,你会没事的。
对于数据结构和算法,我认为您最想知道与系列极限计算相关的微积分领域。反过来,这涉及到一些代数知识。
您需要知道如何计算序列限制才能计算算法复杂度。
如果您不仅对数据结构感兴趣,而且对所有计算机科学领域都感兴趣,离散数学包括布尔代数及其应用程序,它是计算机体系结构和汇编语言的基础,但我认为它与数据结构和算法无关