算法导论
你是如何坚持读完《算法导论》这本书的?
《算法导论》不够猛,答者顺便补充 “你是如何坚持读完《计算机编程的艺术》这本书的?”
罗必成:
CLRS上的证明太烦人了,如果是以业界为目标(进BAT,进FLAG)进行算法的学习的话,我觉得大可不必;如果是以学界(发paper)为目标的话,里面一些引理的证明思路,算法的分析以及符号化的数学思想倒很有学习意义。去年Bin Wang老师的算法课上的作业我还留着呢,数学思维锻炼没锻炼到这不好说,但是LaTex的语法掌握程度绝对得到了提升。
如果看CLRS看不下去的话,题主不妨来试试看跟一个公开课试试。这里我又要来安利一下TsinghuaX的Data structures • 数据结构了,绝对会让你对算法世界的了解更上一层楼的。主讲的Junhui Deng老师是答主在清华碰见的少有深谙教学之道的好老师,他的计算几何也要马上开课了,有兴趣可以报名试试。
发布于 2015-08-07
孟蛋蛋:
推荐中文网易公开课:算法导论,使用的教材就是《算法导论》。
英文可以参加Coursera公开课 Algorithms,免费旁听,付费较昂贵,但可获得全部服务,如编程练习和证书。
如英文足够好,直接读英文原著最好。除此之外需提前准备课件和阅读材料,尽量把这门网络公开课程当作主业来认真对待,包括:
不推荐作为第一本学习算法和数据结构的书籍,也不建议必须要求自己完全理解书中的数学证明。
编辑于 2018-03-11
青霄:
深夜欲眠眠未得,路过答一下题。
算法导论这本书,从初三到高二,自己断断续续的看了三年时间。对于算法导论,自己的阅读路径比较曲折艰难,这是当时自己只有中学基础的缘故。好在算法导论偏向于培养构造性的思维,解题、证明技巧是“算法的方式”而非“数学的方式”,因而得以勉强读了下来。不过平摊分析这样的部分就无能为力了,选择跳过。
- 循环不变式是算导最开端的内容,也是算法正确性证明最重要的钥匙。本质上,循环不变式是算法归纳证明的形式化。理解算导中每个算法循环不变式的证明过程,就是在理解算法的运行原理。
- 算导阅读不需要很深的知识储备(你看我这样的初中生也能勉强看)。在看高斯消元LUP分解的时候,我只是通过附录补习了一下矩阵的基本知识,然后就可以看前面的LUP分解算法了。理解算法的正确性是相对容易的,理解算法设计的精妙,反推算法设计的过程难之又难。
- 代码实现是最好的学习过程。因为竞赛的缘故我使用的是c,当然你也可以用Python、java或者brainf**k(雾)。啃完二十多页的二项堆,并且敲出代码成功运行后,当时的我崩溃的发现还有三十多页的Fibonacci堆在后面等着我。为了记住Fibonacci堆的设计细节,我重复写了20多遍以至于闭着眼睛都能写出来,结果发现在竞赛中根本用不到,我们有好用又好写的Pairing heap。尽管如此,Fibonacci堆的证明简单而直观,算法设计有趣得很。
- 尝试修改优化算法导论上的代码。在编写线性规划单纯性的代码时,我发觉(n+m)*(n+m)的矩阵异常浪费,稍作思考发现可以改成n*m的矩阵加上几个附加向量信息;进一步,对全幺模的情况,可以使用稀疏矩阵常见的优化方法——链表替代行向量。几个优化过后,我终于可以在竞赛允许的时间、空间、编码量内写一个非多项式的线性规划单纯形算法了。
- 快速傅里叶变换也是个有趣的例子。我们都知道,快速傅里叶变换的计算是在复数域上的,而计算机中复数的数值精度会导致FFT在向量比较长的时候丢失信息。后来学过数论部分,发现复数域是可以由一些特定的模整数运算取代的,于是FFT就可以被用来加速高精度乘法。再后来,发觉这个方法叫做快速数论变换。
- 每一章的课后习题是检验本章内容是否掌握的准则。如果课后习题有二分之一以上无法独立解决,不妨重新阅读本章内容,给深入思考留些时间。结合习题阅读章节也是可行的。(我记得网上可以搜到部分章节的答案)
- 说到底,算法导论只是本基础教材,其中无论数据结构、图论,还是动态规划,贪心算法,都只是基础内容。如果看不懂,你需要重新看一下这一章;如果一直看不懂,你需要重新从头读这本书;如果你发觉能看懂了,说明通过培养,你习得了构造性的、“算法”的思考能力。
发布于 2015-08-08
来源: https://www.zhihu.com/question/27744730
相关阅读
人类会关注图中对象的形状,深度学习计算机系统所用的算法不一样,它会研究对象的纹理。图片中的动物轮廓是猫,但是猫披着大象皮肤纹理
基于深度学习的人脸识别算法简介Contrastive LossTriplet LossCenter LossA-Softmax Loss参考文献:简介 我们经常能从电影中看到各
【数据结构与算法】初入数据结构的哈希表(Hash Table)
初入数据结构的哈希表(Hash Table) 这次我们来总结一下关于哈希表的知识,首先我们要了解什么是哈希表,哈希函数的构造思路有哪些
由于MPU6050的深入,我也学会了一些滤波算法,自己写了一些算法,收集了一些算法,供大家一起学习分享,我的代码都是经过反复试验,复制到Ard
转自https://blog.csdn.net/huahua19891221/article/details/81737053 在实际日常中,人们会经常遇到如下问题:在某个给定的定义域内