algorithmdevise手册是algorithm初学者的好书吗?

我对Big-O有个很好的概念,而且我也知道一些基本的sortingalgorithm,尽pipe由于某种原因,我对它们感觉不太舒服,我一直在忘记它们。 我已经用Java,Python,C和C ++进行了4年的编程; 我一直是一个体面的程序员。 现在,我想要超越学习编程语言,开始学习algorithm。

我试过卡门等人的“algorithm导论”。 但是math对我来说太密集了(或者,可能是我对那本书的math太密集了)。

现在,我打算采用Steve Skiena的algorithmdevise手册。 你会推荐它适合我的情况吗? 如果你认为这不适合我,还有其他build议吗?

谢谢你的时间!

我当然会推荐Skiena的书。 你已经开始学习algorithm,你也应该开始学习algorithm。

对于编辑这个答案的人,用math这个词代替了最后一次出现的单词algorithm :当我写这个答案的时候,我的意思是algorithm ,我还是指algorithm ,用math代替这个单词实质上改变了答案。 如果你认为math是OP应该学习的东西,请发表你自己的答案。 如果你有困难阅读下面的评论,你会明白为什么我selectalgorithm而不是math

为了您的目的,我会build议您不要使用“algorithmdevise手册”,而应该使用Cormen或Wikipedia。

在简单介绍了基本的algorithm主题之后,第171-437页并没有真正告诉你algorithm是如何工作的,也不是如何devise它们,而更多的是关于什么algorithm存在以及在哪里find它们的实现(有时它指的是你将需要购买,就像在线性编程部分)

例如,matrix乘法有3页,它给出了它的一些有用的例子,提出了朴素的O(N 3 )algorithm,并且提到了更好的algorithm,如Strassen的O(N 2.81 )(没有描述algorithm),并build议您使用LAPACK库。

所以如果你想了解algorithm是如何工作的,而不是什么algorithm存在以及在哪里find他们的实现,我再次推荐“algorithmdevise手册”。

我最近买了algorithmdevise手册,前几章只写过。 这是一本很棒的书,但在我看来(从我迄今读过的)看:

(1)它不亚于科曼的密度。

(2)关于algorithm的实际实现多于学习algorithm。

如果你能负担得起(或你的雇主支付),你用Java编程,我会build议: Java中的数据结构和algorithm 。 它涵盖了您在其他书籍中find的相同主题,但是如果您习惯使用Java进行编程,则可以轻松应用。 例如,C ++数据结构书籍通常不会在哈希上花费大量时间,因为基于哈希的结构在C ++编程中并不常见。 然而在Java中,哈希是非常常见的,每个对象都有一个hashCode方法。 这本书结合了理论和实践的完美结合。

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/51w6USIIpxL._SL160_.jpg

如果你想要一个脚踏实地的方法,用一个简单的algorithm在一个简单的algorithm中抛出 – 我为其中一个人喜欢读它,这是比我可以说的knuth杰作。 (好吧,在knuth中有几页很有启发性,被称为乐趣 。)

我强烈推荐Mark Allen Weiss在C ++中使用数据结构和algorithm分析 。

这里有几个build议:

  • Aho&Ulman – “algorithm和数据结构”
  • Vhirt
  • Donald E. Knuth – “计算机编程的艺术”

不,我不这么认为。 试用Robert Lafore 在24小时内的数据结构和algorithm 。

Cormen,Leiserson&Rivest的“algorithm导论”。 见http://www.amazon.com/Introduction-Algorithms-Second-Thomas-Cormen/dp/0262032937