我对《算法导论CLRS》的态度一直是有所保留的。虽然早在国内的时候,这本书一直被推崇为经典。但我那时就觉得它对算法的描述不好。一段费解的伪码,加上一大段费口舌的解释。我觉得本可以做得更好。
后来知道,这是典型的美国本科生用书,美国的本科教材,大抵很罗嗦,都是厚重的大部头书。教授们生怕稍有简略,学生们就不懂;而美国的小本们,也傻呵呵的认为书头越重,自己越了不起。
这书中的大段解释,也确是一番好意,就怕哪个不懂。可要真是老老实实的读下去,分散注意要超过传达信息。
这本书我读的最快乐的部分,就是每章的chapter notes。也就是在一章的末尾,介绍这一章提到的各种内容是何时、被谁、怎样引入计算机科学的。不看这部分,总觉得学的就是书上的死学问。而这些引用出处却为我们理清了算法研究的历史脉络,各个经典结果的师承关系。读这些为我带来了巨大的乐趣。也建议读此书的人千万不要放过这一部分,这些引用的结果就是算法研究的里程碑。
对于算法的伪码描述,倒不必太仔细了。不能指望在算法课上学习编程,算法本来就是很纯粹的数学对象,它的设计思想完全依托于背后的数学结构,它运作的机制以及它的美,也都来自它的数学,可是书上那些模仿C和Pascal的语句,让算法的数学之美沦为一段机械代码。读者辛苦的把自己的思维变成机器,读懂了这些代码,但并不会直接带来对算法本身的领悟。就像一个人懂得了打牌的游戏规则,但并不意味着他就会打牌了,因为他可能依旧不通晓牌理。对算法的学习也要从问题本身的数学结构入手,理解解决此种结构问题的算法它的设计思想,掌握分析具有各种结构特征的算法的数学工具,学习怎样发现问题的结构并从中推出问题的下界(lower bound)。这些才是学习算法的根本。
《算法导论》的最大成就,也就在于它的选材。它筛选出来的结果,每一个都当之无愧的算是计算机科学的根基或里程碑。在所有的算法教材中,这一点《算法导论》被公认是作的最好的。结构也组织的合理。尽管它的讲解,对这些经典结果的呈现,都不是我最满意的方式。但明珠纵然暗投也终究是明珠,《算法导论》覆盖的内容,可作为算法最好的教学大纲,是算法课的原型。这是它不容抹煞的历史地位。
支持楼主,本书太多的数学公式、证明、数学符号和伪代码,不适合数学和算法功底不好的读者,伪代码是简短精练,问题是看了此书的人,有多少人能写出实际代码?作为一个读者(不是那种水平已经很高的牛人,牛人基本只是拿此书做参考的),最希望的不是有实际的代码可以和理论相对照着学习吗?不要给我扯什么高深,我要的是实际掌握,明明可以很浅显地就能把问题说明白的事,如果坐在那夸夸其谈我也会,想装还不会装啊。
原版真的挺好,伪代码短小精悍,费解那只能说你cs功底不足。这本书啰嗦那是的确啰嗦,好多地方读的时候会绕进去。习题相当牛逼,全特么经典面试题,也有很学术的题目,而且特么的没答案,逼着人泡图书馆和同学一起讨论。。。这本书恶心在中文版。不想太多评价国内的学术素养,但是翻译错误很多(我学过本书85%章节,除了special topic前面的什么并行算法,傅里叶变换什么之外都看了,大概印象中翻译错误有10个),或者是校对吃了屎,错误太多了,尤其是最后三章涉及复杂度P vs NP理论和近似算法里,一个证明里各种校对上的错误,看的让人心寒。
相比别的啰啰嗦嗦的教材,这本真太好了。伪代码很费解吗,为什么我觉得写得很好。。。。。lz没看过中文版吧,那版才是垃圾,翻译错误先不提了,校对吃屎了更是一堆错,尤其是越后面的章节(Geometry P vs NP Approx最后三章),翻译过来简直不是人话。周围同学都对这本书评价很高,对了我是指cs的,学数学出身觉得这书垃圾算我没说,呵呵
以为LZ看中文版、没做练习、中国式教育的人一定不知道etone是yale的phD……
我就真的不懂了,一些人看了几页原版的clrs就以为自己很了不起,不知道哪来的优越感?
第一次读博主这段评论是若干年前的事情,当时还没有读过CLRS,2年前系统的读了CLRS的英文第三版,最近又正在温习基本的算法,想起多年前的看到的这个帖子,特地过来再看一下。算法导论种很多算法的伪代码实现确实不够漂亮,简单的例子比如max_heapify(有兴趣的读者可以去看一下)。每章背后的chapter notes给人读故事的感觉,道出各个topic的前世今生。
感觉楼主的认识还是非常恰当的,有可能大家的着眼点不一样,所以直观的感受不一样吧。比如有的人数学学得好,后来开始接触编程,那他看这本书就略感无聊。但是如果是先接触的编程,然后想接触一下算法,个人感觉还是不错的。而且,这边评论的人大都是接触编程的人,所以大家都对“伪代码费解”抓住不放了。我感觉完全没有必要,每个人都有自己对事物的认识和判断,LZ的评论这么多人回复,说明LZ的评论还是有读到的见解的。
学有所得就是自己的好书,我想说伪代码一点都不费解,言简意赅,算法算法就是重在思想,而不是重在代码,思想理解了,伪代码本来就只是描述算法的一种方式。。。
回复 哈哈: 《算法导论》其实算是一本不适合自学的书,最好下载人家的上课视频对着来学,否则,除了学会抄算法模型之外,要有进一步的算法或问题分析能力是比较难。
一直都有这种感受。。特别在红黑树那一章,真心看的我各种蛋疼。后来我实现红黑树的时候,这本书甚至起到了误导的作用。。讲解的真心不怎么好。。特别那个伪代码,真的不是一个程序员应该有的好习惯。
不过,就其内容,结构,对后世的影响来说。这本书还是值得一读,不过建议大家一边读一边百度。。这样会更好些
讲的越详细越好,要知道美国的课程比我们自由多了,选择算法课是因为要求或者兴趣,自然会造成学院基础不一致。咱们是以初等教育的方式进行高等教育基础那是相当牢固,至于弊端,大家都知道。而且,如果讲的详细对按这种非计算机专业的来说是很好的自学教材---正因为受众广销量才会足够高,你心中理想的教材是中国式的,只能按部就班的学习,每一本书的内容都不多不少,但每一本书都需要前面的N本书支撑,销量自然上不去。
你说错了,真正的算法的学习是要把伪码用真正的语言来实现,不要以为伪码无所谓,不要认为算法只是简单的停留在纸上的推论和大脑中大致的轮廓,写一段C 只有几百来行,可没有哪么简单的,对于我来说,学习这本书最好的方法是看着书中的想法和伪码自已去实现,可能一个简单的算法会让你烦恼几个星期的,你试试就知道了。
2009-07-22 21:13:48 iamatig
1、
这是典型的美国本科生用书,美国的本科教材,大抵很罗嗦,都是厚重的大部头书。教授们生怕稍有简略,学生们就不懂;
而美国的小本们,也傻呵呵的认为书头越重,自己越了不起。
----------------
前面第一段说得很对,总结出特点来了,可惜你当它是缺点;
后一段更显你的偏激,臆想连篇。
////////////////
2、
这书中的大段解释,也确是一番好意,就怕哪个不懂。可要真是老老实实的读下去,分散注意要超过传达信息。
----------------
你完全可以跳过去,只看你需要的,毕竟尊重大多数人是人家的民主思想所在,你显然习惯了中国国情,属于高高在上的或自认为的精英份子吧
适合你的才是正确的,不然就全是在浪费,那些不懂的人根本就不应该学这些东西,这本书应该是只为你这样的精英服务才对,这是你的逻辑吗?
我觉得,好的书就应该啰嗦点,这样适合大部分人,让大部分不至于因为理解能力稍有偏差就受到打击而放弃,大多数人能进步才是最大的功劳。
你觉得是啰嗦,其实正是它对大多数人的尊重,对我们来说,是详尽。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
说得真好
回复:lonelybug1
不明白堆如何来,说明数据结构的二叉树还没掌握得好(当然是有点差异),脱离数据结构及数学的支持来学习算法,总会是有点吃力!
《算法导论》,导论一词很乎合对其内容的描述,整本书散发着“导论”一词的气息,就是总体介绍性质的书,要详细的需要自己找具体其索引当中的书籍!
适合作为参考书或者是适合作为有老师带领下的参考书!
但,此书未必适合自学型的初学者,如果仅以模型性质去参考的,本书无比适用!如果是以明理为本质的,本书在推导过程上,未必够满足要求!
对于初学者,个人认为更重要的是明理,否则就不是写代码而只是敲代码、套模型的代码匠!
2009-08-11 11:34:52 masque 2009-07-28 12:57:03 黑天使
我已经买了 打算坐在马桶上的时候好好看看
----------------------------------------------------------------
这书马桶上看?orz...
-----------------
很多年了,哥一直坚持在马桶上读大本头的计算机类书籍,所幸未得痔疮。:P
算法导论这本书绝对不是想翻译书中说的什么有趣,易懂,这本书整个的内容结构杂乱,而且我看的是原版英文的,就拿heapsort举例字,我读了3边愣是没明白他那个树如何构建,最后只能靠查wiki和google来理解。
看看这里的评论和amzon上的评论,很多人都是不带有可观的观点去读,这本书根本就属于参考书而不能算是教科书,因为很多核心的东西或者基本的东西还需要另外由读者自己去查阅其他书籍和资料。
完全部推荐给初学者学习算法!
真搞不懂国内那么多人崇拜“算法导论”,其实很多人连这书的一半都没读完。人云亦云。老外,喜欢循序渐进,国内,喜欢提纲要领。文化不一样,写法不一样。都不错,就看自己的思维习惯了。
我这学期在学算法,用的教材就是这本书。我觉得这本书挺不错的,基本上经典的算法都有所设计。虽说算法的描述部分确实有一点啰嗦,但是这样让人更容易懂啊,不是吗?还有,就是如果只看伪代码就能懂整个算法,这些描述部分可以一带而过的。
对于楼主的发言,我也是有保留地赞同!
最赞同的一点:算法的本质是数学,所以要想真正可以大师级运用(例如灵活的分析算法在不同数量级时上下界,为提速改进等等),那还是认认真真的数学一下!
而《算法导论》也很对得起它的名字,introduction,的确是对大数算法的引入、归纳等,很多基本算法的模型归类得比较全,还负有初步的分析,对于初学者、或是工作时的参考,有一定的作用,但仅此而已,比较专门性的推导、处理、分析当然就要按《算法导论》每章最后的标注去找了(就正如楼主想找一个内容分析,当然也不会去从书本的绪论当中找而是具体地去学吧)!
至于楼主说到外国教科书的啰嗦,这个我不同意,人家并不是啰嗦,只是兼固你看者的感受,例如人家引述了一个知识点,会在附近注上需要用到的知识等等,特别是外国学生比较崇尚的是自学、预习,这种风格是方便人家查具体的资料!
可以看看几大理科强国的教材,美国的图表丰富,基础知识完备,苏联时代的《微积分学教程》,光看完例题都已经等同或接近国内数学分析课的水平,德国佬的(当然我只有计算机专业类翻译书),严谨详尽!
就唯一是中国的教授都受卖弄自己多么高明,一个简单的问题解释几句话,可一个需要注意的点,倒没落下半个逗号,反倒是步骤少了几步!
可能楼主会说算法巨著TAOCP也跳步骤啊,我也在看,负责任的说,人家英文原版不会随意去跳关键步骤,关于数学的有趣历史全有资料,该有的公式推导就算内容没直接说,也在习题和习题答案列明,其次,人家不是婴儿奶粉而是让有一定水平的人的补钙奶粉!再者为了让人好应付相应的数学知识,还有一本《具体数学》的数学书,上边有大量关于TAOCP第一卷第一章的补充!
我赞同楼主说的学习算法应该以数学模型建立与技巧优化为最终目标,但伪码部分必不可少,例如做一项工程的某子项目,我们没到详细设计阶段,只需要分析具体模型,那么,当有伪码作参考时,可以快速的去套模型,这是一种便利!
而对于初学者,特别是基础不稳的初学者,伪码也能够帮助他们建立浅层的记忆!
至于算法导论的学习,也有不同程度,基本了解模型和真正全会做习题会推导,那是不同的水平,后者来说明显一本算法导论不足以完成该任务!
2009-07-28 12:57:03 黑天使
我已经买了 打算坐在马桶上的时候好好看看
----------------------------------------------------------------
这书马桶上看?orz...
------------------------------------
看这本书 会便秘的。。
其实选择那本教材 也是看个人的 对初学者而言 浪费时间的正是那些细节 课堂上 有些老师自己都没弄明白那些东西 空留在学生去摸索 浪费掉很多时间还得到的很少 反正我看严版的教材 一直处于迷惑中 看完这本书 希望可以清晰一点 得到需要的知识点
这是典型的美国本科生用书,美国的本科教材,大抵很罗嗦,都是厚重的大部头书。教授们生怕稍有简略,学生们就不懂;
“过来人”们不知道,往往正是那些细节会花费掉新手们大截的时间
DP那一章例子太少 没有把DP的所有分类都涵盖 目前就看了一半 我的做法是结合USACO的题目看书 边看书边学习 再加上01年的课程视频 以及国内各大oj上的题目 一本书是没法让你完全参透算法的 但不管怎么说 算法方面最好的参考书之一就是它了 还有一本就是TAOCP了
看看作者是怎么讲的《算法导论》课:视频 http://www.xinkaixue
要想学好一门课,经典教材是要读的,多种教材都是要读的,读一本书与不读没什么区别。外国的教材与本国的思想就是不同,建议想读的就从国内的数据结构的书和算法的书读起,再来读这本,经典就是经典,是容的起众人检验的。
我不觉得此书在算法的讲解上啰嗦,通过作者“啰嗦”的讲解,我能感受到衔接紧密的逻辑推理过程。很少有算法书能做到这样,如果能跟随作者的思路通读两三遍,那么对算法的思想无论从感性上还是理性上都有很好的理解。
这本书很好!当年学数据结构的时候,有几个图的算法,代码虽然有,但不知道为什么要这么写。学算法设计的时候,虽然知道动态规划,但也只是一个肤浅的认识。直到看了《算法导论》以后,我才对那些算法有个本质的认识!你可以在国内找找,有哪些书把“红黑树”这个数据结构讲清楚的!!你所看的那些书,仅仅是对算法有个表面的了解,要想有个本质上的清楚,看《算法导论》吧!我承认这本书很难,本人“离散数学”刚刚及格,还好能勉强应付“图”那几章~~
我总结一个哈。总之这基本上是一本适合普通计算机本科生的基础书,风格接近国内教科书而备受推崇,但也是这种接近国内教科书的风格让人不喜欢甚至激愤,好像是说“你丫又给我引进了这种基础书,SICP 不是比它好得多么?”SICP 一类是好书不错,但 CLSR 的引进和推崇是面对国内低质量 CS 教学和教科书的一个折中,其意义差强人意。
大家对楼主的指责也无可厚非 但是我想提醒的是作为一个在中国式教育下成长的 并未对西方教学方式有较早接触的学生 要一下子就能够适应这另一种风格也不容易 大家各自的学识背景经历均不相同 发表各自意见看法当然是好的 但你的经验不一定就适合别人 此书是公认的经典 但世界上绝对没有一本适合任何人学习的书籍 我是一个大学才接触计算机科学 从小城市出来的学生 在一开始看这本书的时候确实也非常不适应 学校的教材用的是严版 也正是在学完了严的书之后再次拿起此书 才知道这本书的精妙与非凡之处 以高姿态一味的强调西方教育的先进性和本土教材的山寨性并不能真正为广大生长在这个环境的学生们提供有用的帮助 具体问题具体分析 去糟取精 共同探寻适合自身的发展道路 才是我们真正需要的行为和态度
不敢苟同。伪代码费解么,我倒觉得相当简洁易懂(当然前提是你看懂了算法)。罗嗦?我觉得是详尽。从算法的确不能学到编程技艺,但从这本书中却可以,仔细读下代码,你应会发现每个算法的实现的代码模块设计相当清晰,复用性也做的很好。如果仅看数学证明,自己实现的话,我觉得我写不出那样优雅的代码。当然LZ多从数学的角度看待这本书和我得出不大相同的结论,也是正常的。
耐心的看 慢慢就看进去了 一旦看进去 你就觉得写得很棒!!!~~
这本书适合那些踏踏实实的朋友,适合从基础学习的朋友。实话实说,妄图通过别人高屋建瓴的语言,来达到也跟牛人一样思想水平的朋友,这本书不适合!!!
朋友推荐要看《算法导论》,算法和编程基础是他进微软的必须技能
本科的时候因为玩电脑和休息不好数学没学好,很可惜
希望通过《算法导论》能把这一课补一下
学习之前先调研,看看大家的意见,希望有所帮助
这书中的大段解释,也确是一番好意,就怕哪个不懂。可要真是老老实实的读下去,分散注意要超过传达信息。
这本书我读的最快乐的部分,就是每章的chapter notes。也就是在一章的末尾,介绍这一章提到的各种内容是何时、被谁、怎样引入计算机科学的。不看这部分,总觉得学的就是书上的死学问。而这些引用出处却为我们理清了算法研究的历史脉络,各个经典结果的师承关系。读这些为我带来了巨大的乐趣。也建议读此书的人千万不要放过这一部分,这些引用的结果就是算法研究的里程碑。
对于算法的伪码描述,倒不必太仔细了。不能指望在算法课上学习编程
---------------------------------------
谢谢上面的话:)
1、我觉得看理科的书最重要是形象化的过程。例如,算法要看数据是怎么搬动的。算法就是研究数据变动的。
2、从更显浅的层次一层层的剖析。计算机的结构依据就是层结构。
个人倒觉得,学理工科的话,数学这东西倒是像吃饭要筷子喝水要杯子一样,自然而然的事。不能寄希望于学完数学然后再学其它需要数学的东西,要用点搬点也许更加有效率和直观。其实不少把算导翻烂的,根本就是高中生。。。需要的时候,就去学吧,谁让咱忘了呢:)
恩,,最近正在读这本书,也说说我的观点:
首先,“有保留的推荐”我是支持的,我觉得本书最精彩的部分就是一大段大段的解释,但是最让人容易分散注意力的也是这一大段大段的解释。不管怎么说,我看起来分散注意力的时候居多。
第二,本书应该可以写的更好,如果对每个算法刚开始能用最通俗易懂的语言来描述它,然后再对他进行解释和论证,那样会更好,这样这本书的使用范围会更广。
第三,国内很多大学本科根本就没有算法课(除开一些重点高校外),只有数据结构课程,上了研究生才开了算法课,但是算法导论里面的数学的东西我们在本科的时候都学过了,现在研究生再回过头来看算法导论,里面很多数学的东西早就忘得一干二净,看起书来自然感觉很不爽,这种课程安排方式导致知识脱节,很难真正把学过的东西用上,其实本科学的数学的知识只有在研究生才真正得到应用,但是很不幸,到了研究生我们已经把数学忘了。所以我觉得在本科阶段三年级或者四年级的时候应该要开算法导论这本科,或者我们自己应要看起来了。
我很同意你的观点,应该是“有保留的推荐”。
因为我感觉 这本书还可以写的更好。它给我的感觉就像是潘爱民翻译的《计算机网络》一书。 但是还有不足,无法使我拍案叫绝。可是那本自顶向下的网络书就会使我拍案叫绝。 “ 这本书我读的最快乐的部分,就是每章的chapter notes。也就是在一章的末尾,介绍这一章提到的各种内容是何时、被谁、怎样引入计算机科学的。不看这部分,总觉得学的就是书上的死学问。” 以前没有体会,做科研之后,发现确实如此。 读那些原文文章,比读教科书更加有益。
我同意lz的看法,我买了算法导论第二版的中文版,由潘金贵等译。
但看了以后,感觉没有大家所推荐的那么好。
因为可读性不佳。讲的比较难懂。
我由此对网络上的各种推荐都持保留态度,后来也发现,许多人对书籍的推荐,不是来自自己的思考和自己的体验,而是copy所得。有一个人将一篇推荐写的不错,于是后面就有很多人跟着说,嗯,不错,好书,经典!
这是很不负责任的态度。
不好意思,有点离题。
----------------------------------------------------------------------------------------
翻译的书,我从不认为是可以读懂的书。
所以请不要用翻译的书来评价原著。
谢谢。
部分同意Lz观点,书写的太罗嗦了的确不好,谭浩强的《C程序设计》就非常的罗嗦,想讲清楚每一处细节,结果往往模糊了问题的主线,让人很迷惑。《算法导论》我已经买了,但还没看,希望适合我。
2009-07-28 12:57:03 黑天使
我已经买了 打算坐在马桶上的时候好好看看
----------------------------------------------------------------
这书马桶上看?orz...
我觉得还行, 语言相当的优美精练. 至于大段大段的解释, 你不想看就直接跳过去呗.
最让我晕的就是那一个接一个的证明, 看得我头好大, 可是如果不把它看懂的话, 就没法理解的深刻, 郁闷!
1、
这是典型的美国本科生用书,美国的本科教材,大抵很罗嗦,都是厚重的大部头书。教授们生怕稍有简略,学生们就不懂;
而美国的小本们,也傻呵呵的认为书头越重,自己越了不起。
----------------
前面第一段说得很对,总结出特点来了,可惜你当它是缺点;
后一段更显你的偏激,臆想连篇。
////////////////
2、
这书中的大段解释,也确是一番好意,就怕哪个不懂。可要真是老老实实的读下去,分散注意要超过传达信息。
----------------
你完全可以跳过去,只看你需要的,毕竟尊重大多数人是人家的民主思想所在,你显然习惯了中国国情,属于高高在上的或自认为的精英份子吧
适合你的才是正确的,不然就全是在浪费,那些不懂的人根本就不应该学这些东西,这本书应该是只为你这样的精英服务才对,这是你的逻辑吗?
我觉得,好的书就应该啰嗦点,这样适合大部分人,让大部分不至于因为理解能力稍有偏差就受到打击而放弃,大多数人能进步才是最大的功劳。
你觉得是啰嗦,其实正是它对大多数人的尊重,对我们来说,是详尽。
顺便说句,我有此书的中文版扫描书,有需要的可以联系QQ30233582
你傻冒啊
chapter notes和算法没关系,说的些杂七杂八的东西
它对算法的描述哪儿不好了?
几乎每段都加了注释,它并不专注于什么语言
为了便于理解,有的地方直接用的english描述的
通常一个麻烦的算法,它都分步讲解
从core到crust
你看看严婆婆的那个书
那个描述的好吗?
算法啊
算法啊
弄了那么多语言细节
明明一个a不等于b可以判断的东西
非要写一堆
这个书,你没看完,别瞎说
我同意lz的看法,我买了算法导论第二版的中文版,由潘金贵等译。
但看了以后,感觉没有大家所推荐的那么好。
因为可读性不佳。讲的比较难懂。
我由此对网络上的各种推荐都持保留态度,后来也发现,许多人对书籍的推荐,不是来自自己的思考和自己的体验,而是copy所得。有一个人将一篇推荐写的不错,于是后面就有很多人跟着说,嗯,不错,好书,经典!
这是很不负责任的态度。
不好意思,有点离题。
对于算法的伪码描述,倒不必太仔细了。不能指望在算法课上学习编程,算法本来就是很纯粹的数学对象,它的设计思想完全依托于背后的数学结构,它运作的机制以及它的美,也都来自它的数学,可是书上那些模仿C和Pascal的语句,让算法的数学之美沦为一段机械代码。
not really, 我相信对很多cs的小孩来说,对伪代码的理解速度远远超过对数学概念。
其实个人一直觉得算导上的伪代码写的简洁明快,不想看前面的分析了一看伪代码立马理解了。。。
除了“它对算法的描述不好。一段费解的伪码,加上一大段费口舌的解释。我觉得本可以做得更好。 ”之外,其他的评论都可认为是“极力推荐”之词了。
“一段费解的伪码,加上一大段费口舌的解释。”,嗯哼?也许我可以同意“本可以做得更好”,但我更非常关心的是,是否已经有人做得比他们好了呢?:-)
这段说得真好:
不能指望在算法课上学习编程,算法本来就是很纯粹的数学对象,它的设计思想完全依托于背后的数学结构,它运作的机制以及它的美,也都来自它的数学,可是书上那些模仿C和Pascal的语句,让算法的数学之美沦为一段机械代码。读者辛苦的把自己的思维变成机器,读懂了这些代码,但并不会直接带来对算法本身的领悟。就像一个人懂得了打牌的游戏规则,但并不意味着他就会打牌了,因为他可能依旧不通晓牌理。对算法的学习也要从问题本身的数学结构入手,理解解决此种结构问题的算法它的设计思想,掌握分析具有各种结构特征的算法的数学工具,学习怎样发现问题的结构并从中推出问题的下界(lower bound)。这些才是学习算法的根本。