百科问答小站 logo
百科问答小站 font logo



程序员应该如何学习算法? 第1页

  

user avatar   bxbxbai 网友的相关建议: 
      

建议千万不要一开始就看《算法导论》,这本书有太多关于算法的数学证明(如果你喜欢这种,那么你就看这本)

我强烈推荐你看看这本:

算法(第4版) (豆瓣)

,作者是高德纳的学生:塞奇威克 (Robert Sedgewick)

去年我在准备校招面试的时候偶然发现这本书,我越看越着迷,书中算法代码主要是用Java编写,里面有大量的图来让你明白例如:排序,查找,树和图的算法运行过程。


这本书的目录编排也很清晰,他就告诉你算法主要就可以分为:排序,查找,图和字符串。从这4个方面可以演化出很多算法。


我觉得最关键是:这本书的作者不但是在告诉你what,而且告诉你why(分析各种算法的优缺点)


----------------

补充一些我觉得这本书好的地方


比如讲到快速排序,很多书可能讲了快速排序的原理就完了。但这本书就直接讲了原始的快速排序可以改进的地方:1. 在小数组上,切换到插入排序;2. 三取样切分;3. 三向切分的快速排序。

优先队列怎么和排序算法扯上关系呢?其实优先队列就是可以用堆排序来实现,堆排序的时间复杂度和快速排序是一样的,但是实际中为什么堆排序的运行时间要比快速排序多呢?因为这和CPU的Cache命中率有关系,堆排序不符合算法运行的局部性原则

还比如书中2.5节,讲了排序算法的实际用途。

这本书不光告诉你算法的原理,还告诉你算法的用途。




  

相关话题

  AI在网络安全领域(尤其是威胁检测领域),有什么好的应用场景? 
  法国亿万富翁筹资一亿美元在硅谷建立「免学费」大学启动「42」计划的目的是什么? 
  如何评价 DeepMind 的新工作 AlphaCode? 
  链表和数组的插入删除时间复杂度都是o(n),为什么教材网络上说链表效率高? 
  如何看待阿里平头哥发布的全球最高性能 AI 芯片「含光 800」?这款芯片核心技术是什么呢? 
  最短的可以造成崩溃且编译器无法优化掉的 C++ 代码是什么? 
  无人驾驶运营维护,自动驾驶运营维护,无人驾驶科技公司落地,逐渐走向现实,落地后的运营维护怎么办? 
  AlphaFold 震撼发布 98.5% 的人类蛋白结构预测结果,有哪些重大突破?它们将带来哪些应用? 
  如何看待 Python 之父关于帮助中国程序员应对 996 工作制的讨论? 
  阿里公关在月饼事件上请了水军么? 

前一个讨论
常年带伞的人的想法是什么?
下一个讨论
在图书馆怎么认识女生?





© 2025-04-03 - tinynew.org. All Rights Reserved.
© 2025-04-03 - tinynew.org. 保留所有权利