对我来说,以前学算法只囫囵吞枣地记了结论,工作了看编程珠玑,发现了思考的乐趣,现在看这本书,讲解算法设计思路,觉得很好。伪代码不重要,用什么语言实现没关系,记住思路才是最主要的。所以,如果选一本书学算法的话,我会选这本。太厚的不要。另外,堆排序那一节,说从底到顶比从顶到底快,我想了想,觉得时间一样。
这里说的是构建堆而非堆排序。构建的时间复杂度是有区别的。
从顶到底需要与左右子节点各比较一次,从底到顶只需要与父节点比较一次。从比较次数上讲,从顶到底是从底到顶的比较次数的两倍左右;从交换次数上讲,没有区别。
基于比较的排序,下届是nlogn,不可能达到n
底到顶是O(n),顶到底是O(nlogn)。。。 来自三年后的回复。
作为一名软件工程的学生,真心觉得算法导论比这个更容易上手