购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

欢迎阅读《高级算法和数据结构》!

很高兴你能加入探索数据结构和算法世界的旅程!希望这段旅程对你和我们所有人来说都足够激动人心。

本书讨论的主题不但对推动软件工程的发展做出了贡献,而且切切实实地改变了我们的世界,至今仍时时刻刻地影响着我们。平均而言,你每天都会接触到数十种使用这些算法的设备和服务。

对算法的研究早在计算机科学诞生以前就开始了。想想看,欧拉法和图论领域已有长达三个世纪的历史。但是,如果与两千多年前就已发明出来的埃拉托色尼筛法(用来制作素数表)相比,这似乎有点小巫见大巫了。

然而,相当长一段时间内,算法通常都被归于学术范畴,而业界也只有一些像贝尔实验室这样的机构才能够参与其中。20世纪50年代到90年代,贝尔实验室的研发团队在算法领域取得了巨大的进步,其主要成就有动态规划、贝尔曼-福特算法以及用于图像识别的卷积神经网络。

幸运的是,和那个时代相比,现在的许多事情都发生了变化。2000年之后,数学家和计算机科学家日益受到大型软件公司的青睐。机器学习等新领域开始出现,人工智能和神经网络等其他领域在经历漫长的寒冬后重新焕发生机。

我是从上大学时迷上算法的。虽然早在高中时期我就学习了搜索和排序算法,但是直到学习了树和图,我才意识到它们可以带来的改变以及我对这些主题有多么喜爱。

那是我第一次发觉代码可运行并不是编程的唯一目标,甚至不是主要目标。这些代码的工作方式、运行效率以及整洁程度,和它们能够工作同等重要,甚至可以说更为重要。(遗憾的是,又过了若干年,我才对测试有了同样的感悟。)

这本书的写作花费了我大量的时间,远远超出我在4年前向编辑提出这个想法时的预期。这本书的出版故事(至少现在回想起来)非常有趣,但我并不打算在这里长篇大论地絮叨。你只需要知道在写这本书的4年里,我换了3份工作,在两个国家待过,搬过5次家!

虽然写这本书付出的努力颇多,但是收获也颇多。首先也是最重要的,写一本书意味着开始一条成长之路。因为无论你在一个主题上工作了多久,或是你对这个主题有多么了解,要写出来,你就得强迫自己质疑已经对这个主题所知道的一切,深入研究之前在应用时可能忽略的每个细节,花大量的时间来研究、消化和处理各种概念,直到你有足够的信心可以把这个主题解释给对它一无所知的人。通常来说,一个很好的检验标准就是让某个不在相关领域工作的家人听你进行介绍。对了,请记得选一位非常有耐心的家人。 o/0EAJfQUi/PhWSLyrrun75zbRTAf6q1n9XLAeyIPrF1kCqnLwfdaRSCLn90qBWW

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开