算法学习的疑惑,求大神帮助

2013-02-21 12:19:35 +08:00
 ivanlw
这学期选了算法课,听得很痛苦(之前没有基础)……
之前讲了一些排序算法,还能勉强跟得上思路……最近讲到贪婪问题,在遇到证明算法最优的时候就彻底崩了……
然后老师又特别喜欢证明,有了一种回高三的感觉=.=
之前讲到O(n)的选择问题(找到第k个最小的数),证明就讲了大半节课……
这周讲到背包问题的最优解,证明它是最优的……又在黑板上画了大半节课……
离开高三那么久了,就都跟不上老师的思路了
这些证明真的这么重要吗?
你们的算法是怎么学的?
4556 次点击
所在节点    程序员
8 条回复
linusyang
2013-02-21 13:08:47 +08:00
我在大学里上的算法课感觉就是数学课,注重原理和证明方法,不怎么注重编程实现。证明算法的正确性或最优性确实是很困难的,需要用到很多的数学工具和分析方法,但这些经典问题的证明方法基本上都是有套路的,慢慢来,多学多模仿就可以了。算法证明以后如果不研究这一块的话,可能不怎么会用到,不过既然选了这门课那就好好上吧。 :)
123qws
2013-02-21 13:11:45 +08:00
喜欢证明算法的正确性的是好老师,一般老师就叫你自己看,证明算法才是算法的灵魂所在
cassyfar
2013-02-21 13:41:41 +08:00
应用算法和研究算法不是一个档次,有这个机会当然要弄懂它。
TankyWoo
2013-02-21 13:50:57 +08:00
楼上说的对

[算法]是思想,[证明]可以认为是引出这个思想的过程

光有思想不行,你还应该知道为什么前人这么想,他们是基于什么思路的

------------------------------------------

至于算法的学习方法,给你几个简单的步骤:
1. 学思想
2. 看伪码
3. 用一门语言实现,比如C/C++,Pascal,等都是比赛常用语言
4. 过段时间,抛开书本资料;自己回顾算法思想,再次亲手实现

关于看书方面,我当时搞ACM,所以看得是HDOJ的课件,先去HDOJ刷题,然后把算法导论给看了

其实我觉得,算导 算是很基本的 算法书籍了,如果要我推荐,我只会推荐这一本,因为常用的算法都涉及到了,且图文并茂,兼有伪码,很容易理解

-------------------------------------

顺便给你一些我曾经写过的总结:

* 我的算法专题:http://www.wutianqi.com/sfzt.html
* 我的算法导论总结:http://www.wutianqi.com/?p=2403
* 关于ACM的入门书籍和方法:http://www.wutianqi.com/?p=2512

希望能给你帮助


PS:我已经有一年多不搞这了,所以只能给你经验上的帮助,技术上的没法帮忙。
hitigon
2013-02-21 14:07:11 +08:00
算法课就应该这样

感谢楼上的总结和资料,很棒
hahastudio
2013-02-21 15:59:59 +08:00
算法课不讲证明讲什么= =
证明算法的正确性可以知道这个算法为什么对,如果是构造性证明还能知道前人是怎么想的= =
顺带一提,我们用的是这个教材 http://www.cs.berkeley.edu/~vazirani/algorithms.html
qiukun
2013-02-21 17:59:29 +08:00
不讲你还去上干嘛?直接给你个伪代码,小心点,啥不能实现?
EthanZhu
2013-02-22 04:46:53 +08:00
上学期跟LZ一样痛苦。。。。一学期没怎么听课拿了个BC - -

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/60922

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX