我很清楚Big-O是什么,我也知道一些基本的排序算法,虽然由于某些原因,我从来没有对它们感到满意,我一直忘记它们.我已经用Java,Python,C和C++编程了4年; 我是一个不错的程序员.现在,我想超越学习编程语言并开始学习算法.
我尝试了Carmen等人的"算法导论".但是数学对我来说太密集了(或者,可能是,我对那本书中的数学来说太过密集).
现在,我打算采用Steve Skiena的算法设计手册.你会根据我的情况推荐吗?如果您认为这不适合我,您还有其他建议吗?
谢谢你的时间!
Hig*_*ark 49
我当然会推荐Skiena的书.您已经开始学习算法,您也应该开始学习算法.
为了谁编辑这个答案,取而代之的字中的最后一次出现算法字数学:我的意思是算法的时候我写了这样的回答,我还指算法,替换字数学实质上改变了答案.如果您认为数学是OP应该学习的,请发布您自己的答案.如果您不方便阅读下面的评论,您就会理解为什么我选择算法这个词而不是数学.
yai*_*chu 15
我会建议您使用"算法设计手册",以便用于浏览Cormen或Wikipedia.
在对基本算法主题进行简短介绍之后,第171-437页并没有真正教您算法如何工作或如何设计它们,而是更多地了解存在哪些算法以及在何处找到它们的实现(有时它会指向您实现将需要购买,如在线性编程部分)
例如,矩阵乘法有3页,给出了一些有用的例子,提出了朴素的O(N 3)算法,并提到有更好的算法,如Strassen的O(N 2.81)(没有描述算法) ),并建议您使用LAPACK库.
因此,如果您想了解算法是如何工作的,而不是存在哪些算法以及在哪里找到它们的实现,我再次建议不要使用"算法设计手册".