自动驾驶学习 | 算法第四版

对于自动驾驶汽车工程师而言,基本的算法素养是不可或缺的。即使不做工程师或程序猿,学习算法也有很大益处,有序的逻辑、抽象的世界观,效率的价值观都是需要训练的,而通过算法学习就是一个有效的手段。在学习算法时,网上会有各种资源,初入门时很容易眼花缭乱,各花入眼之后,最亮的明珠是《算法第四版》,或者叫做《Algorithms 4th》

优点

  • 在网上有高质量的整套开源资源,包括书本、讲义、视频、配套网站、习题等。
  • 涉及的算法内容丰富且完整,以基础、排序、查找、图、字符串、背景分成六大类,涵盖了几乎所有常用算法及其拓展。
  • 书本组织结构很好。各个章节自成体系,没有耦合。可任意选一章学起,也可把书本作为算法的查找手册。
  • 对具体算法讲解的架构很好,会先设计算法的API,之后再实现具体代码,中间也会补充可视化的图形以及具体过程拆解以帮助理解。
  • 课后习题丰富,难度也是循序渐进,可在github上找到配套的答案,可帮助自己检验学习成果,稳步提升。
  • 配套视频里有对算法更精妙的使用,每个视频都能让人有很多启发。
  • 使用Java作为核心语言,学习成本较低,且Java面向对象编程的特性对学习算法是很适宜的。

缺点

这么完美的书也有自己的缺点,作者写了一个自己的库,没使用Java自带的原生库,这就给最初一步环境配置带来很多问题,在实际使用代码时,配置环境把我折磨的好几次想放弃。

解决方案1

首先进行Java环境的配置和源代码的下载可参考这篇文章,基本配置2018-10-21更新,这种方法就足够解决所有环境配置的问题,但有一点切切注意,从网上下载的源代码请删掉第一句package edu.princeton.cs.algs4

注意1。如果需要用powershell,< 被保留下来作为未来字符,输入数据采用了get-Content方法,参考在powershell里运行如何用参数读取文件。

解决方案2

直接导入相关Stdlib包,不使用package的语法,直接import进去。

解决方案3

使用Eclipse或其他IDE作为开发工具,我没采用这种方法,但有人采用,具体可参考知乎方法。

资源

所有资源都可以从教学网站的入口找到,这里为了方便,把各种信息列了出来,以方便查阅。

这本书真的很棒。

0%