chatgpt,ai绘画,图像识别,人脸识别,核心就是算法,产品就是算法不断迭代,精进的输出。
程序=数据结构+算法。
算法的知识当属科学,结构的想象则是艺术。
这些算法的细节,以及编写高效代码实现这些结构的转换,是编程像手艺活的一面。
从技术上讲,这就是所谓维护结构的不变性。
编写代码以维护不变性是相对简单的技艺,不过这需要非常用心并辅之以大量训练才能练就。
怎样学习算法
学习算法,很重要的一点在于有一本好的算法书籍可以查阅。
就比如说最经典的算法导论,拥有此书,你可以保证自己的算法无懈可击,不会出现严重问题,因为书上的东西经过了成百万上千万的读者查阅,写作者有能力证明自己的算法的正确性。
相对于书籍,网络教程可能比较容易出现问题,因为99%的写作者只是按照理解写算法,并不能证明,只能起到辅助理解的作用。
很多新人一上来就被人推荐算法导论,可是这本书真的很难,我就举个例子,书中对于贪心算法的证明,是用了一种叫做拟阵的数学方法,几乎没有人听说过这个生僻的概念,更不用说去看懂证明了。
因此这本书不建议用来入门,它更适合用来查阅。特别是在掌握基本的算法和数据结构之后想进一步加强对理论的分析,才会选择算法导论。
如何选择算法书籍这个问题,对于刚开始学习的同学可能很难,为了照顾新手,这一次我又整理了一遍算法书籍。
书籍列表如下,标注了难度:
01.数据结构与算法分析-C语言描述(新手入门)
02.算法设计与分析基础 第3版(新手入门)
03.算法引论:一种创造性方法(新手入门)
04.编程原本(高级)
05.C语言接口与实现:创建可重用软件的技术(高级)
06.算法导论中文第三版(高级)
06.算法导论英文第三版(高级)
07.算法中文第4版(新手入门)
07.算法英文第4版(新手入门)
08.算法竞赛入门经典第2版(算竞入门)
09.挑战程序设计竞赛1第2版(算竞入门)
10.挑战程序设计竞赛2(算竞入门进阶)
11.算法竞赛进阶指南(进阶)
12.漫画算法-小灰的算法之旅(新手入门)
这些书籍基本满足了入门到进阶的需求,不管你是还没入门的学生,还是很厉害的算法竞赛小能手,亦或是已经毕业多年的程序员,都能够从这些书籍中学到很多没见过的知识。
大部分可以再网上找到pdf版本,部分,找不到好的pdf,如果你经济允许建议你直接购买实体书,实体书排版非常精美,即使只是收藏也感觉很值。
网友评论