读书人

学习算法一年的总结解决方案

发布时间: 2013-01-25 15:55:29 作者: rapoo

学习算法一年的总结
转眼间,我学习算法已经一年了,就写一篇东西来记念一下吧。

一年前的今天,我在某个网友的怂恿之下,就买回了《算法导论》来看,当时的我,全然不知算法是什么东西,也不知道链表是啥表,甚至还不能熟练地使用C++。在这种前提下,就去阅读《算法导论》,结果可想而知(不知当时的我到底是勇气可嘉呢?还是白痴到家呢?呵呵)。不过,这个经历却引起了我对算法的兴趣。

与此同时,我还知道一种叫做ACM的比赛和叫OJ的系统,于是我就去了HDU这个OJ上做题(为什么选择这个OJ呢?主要是因为听说这个OJ上的水题特别多啦),虽然我基本上不会任何算法,但还是能做一些水题的,毕竟有些水题是不需要任何算法也能够做出来的。

这样过了几天,觉得不能这样下去了,《算法导论》我基本上看不懂,一直做水题也没什么意思,上网查了一下,想学算法,还是要先学数据结构的。于是就去图书馆借了一本《数据结构。。。》(书的全名都忘记了,汗),这本书真的不错,不但详细地说明了各种常用的数据结构和排序算法的理论性知识,而且还用C++的模板类和派生类实现了这些数据结构。看完这本书之后,我就算进了数据结构的门了(虽然还是很水很水)。这时,我也能够看懂一点《算法导论》了。

接下来,我就开始一边看《算法导论》,一边做ACM了。虽然做这件事的难度比较大,但好在网上的相关资料比较丰富,想找的话一般都能找到;另外,CSDN上的网友也比较热心,我的疑问在这里一般都能得到满意的解决(在此谢谢各位了,呵呵)。在做ACM的过程中,我曾经被高手鄙视过,也被新手称赞过。说实话,我最喜欢听赞美,但使我进步最大的,还是那些鄙视我的高手。

看《算法导论》和做ACM花费了我大量的时间与精力(这些时间原本是用来看电影和玩游戏的,一位同学曾经问我做ACM到底有什么好处?老实说,我也不知道)。但无论在学什么,应该都比花大量时间在游戏和电影上好吧?我的学校比较水,没有自己的ACM队,好像整个学校也没有多少人在做ACM,我也没参加过ACM的比赛(有道那个比赛除外)。大一的时候就听师兄说,很多人在学完数据结构这门课程之后,还写不出一个普通的链表,当时我还觉得这是个笑话。但现在,我能保证我们班有一半左右的同学是这样。有时我在想,我如果没有接触ACM,我会不会也是这样呢?另外,我是将ACM当做《算法导论》的辅助练习而已,从没想过成为一名ACMer.

看《算法导论》(没完全看懂),提高了我的理论水平;做ACM,提高了我的动手能手。就是这两个好处就对得起我所付出的那些时间与精力了吧。而且,为了做这两件事,我还自学了线性代数,离散数学(我们专业没开这两门课,真是无语),看了《STL标准程序库》。更重要的,它阻止了我那堕落的大学生活,使我那宝贵的大学时光不至于完全浪费掉。还使我可以在一定程度上说:是我上了大学,而不是大学上了我。

网上有很多人在讨论:算法是不是像传说中的那样重要。对于这个问题,我真的不知道。一方面,算法对于学计算机的学生的长远发展而言,的确是有重大意义的;另一方面,国内大部分程序员的工作没有涉及算法,或者只是简单地调用别人写好的算法(库)。但我始终认为,学好基本的,常用的算法还是非常有必要的。就像一个人不能因为不想当数学家,就不需要明白加减乘除是啥意思一样。

20010年6月18日写于宿舍
[解决办法]
楼主已经坚定信念了,就一直走下去吧,
算法是提高效率的,还有解决一些难题的,
国内现在用的不多,并不表示以后用的不多。。。

[解决办法]
“我的学校比较水,没有自己的ACM队,好像整个学校也没有多少人在做ACM,我也没参加过ACM的比赛“

和我基本一样,眼泪哗哗的,我道是代表学校参加过一届,但成绩不好,想起ACM就像心中永远的痛一样。
除了LZ的最后日期有点雷,其他的都支持,顶!

加油!
[解决办法]
赞楼主的学习态度, 跟你相比我差远了。
偷偷的告诉楼主,不知是比较水的学校是这样,我自认为我上的学校还行,但把数据结构上完后,貌似也没有多少人可以把一个简单的单链表写完整。
也就在去年的这个时候毕业时,虽然找到了一份还不错的工作,但总觉得大学过得很遗憾吧,因为虽然我们学校友ACM队,但我一直到大三才知道ACM为何物。。。。。
回想往事,不堪入目啊,还是好好把握现在吧!!
[解决办法]
楼主可以了解并学习一下数学建模.
[解决办法]
搞算法要耐得住寂寞啊~~~

不过,高手都是寂寞的~~~

goodluck
[解决办法]
赞一下,老夫中午买了本matLib想玩一下。
[解决办法]
我是搞noip的,希望教学生这样的东西,将来能够有用。
[解决办法]
OIer 路过。。。希望在今年的Noip取得好成绩。。。
[解决办法]
楼主厉害,很有恒心!
学习之
[解决办法]
楼主牛人,支持楼主继续努力!
[解决办法]
其实算法从完全不会到中等程度最多花费1年时间
只要有楼主的耐心认真研究1,2本著作就行了
[解决办法]
楼主大学生活很充实呀

[解决办法]
楼主的方法值得借鉴
------解决方案--------------------


贫道佩服
[解决办法]
共勉!
[解决办法]
恩 不管做什么都得感兴趣并能坚持 一定会有效果的。。。
[解决办法]
无论在学什么,应该都比花大量时间在游戏和电影上好

国内大部分程序员的工作没有涉及算法,或者只是简单地调用别人写好的算法(库)。但我始终认为,学好基本的,常用的算法还是非常有必要的。就像一个人不能因为不想当数学家,就不需要明白加减乘除是啥意思一样。

赞一下。
[解决办法]
楼太高了,拿不到分了.
支持楼主,只要还没放弃就会有进步.
[解决办法]
还记得LZ刚来算法版时的情况,1年时间,水平真的是有了很大的进步。继续努力吧。

其实相比我们这代程序员,LZ算是幸运的,至少周围有人在谈论算法,并且有这么多的OJ可以让你去实践算法。而我们这代程序员,虽然从构架到底层都干过,但如果不是误打误撞来到了Csdn算法版,恐怕我至今都不知算法为何物,也不能领略计算科学中最美的风景。我会同我的前辈一样,迷失在CMM,UML,瀑布模型,设计模式......这些无穷尽的概念之中,并于35岁之前转向管理,拿较高的薪水,同时写文章告诉后来人,这才是你们该走的路......好在这一切没有真的发生,让我在30多岁开始接触到算法分析和算法设计,晚么?我觉得不,还是那句话,“觉得为时已晚的时候,恰恰是最早的时候”

多年前唬人时经常会把算法二字放在嘴边,也许同时还会配上一些由3个英文字母组成的单词,例如:ERP,SOA,RIA......,回想这些流行的应用或概念,同算法比起来,显得那么单薄。总会有那么一天,OO消失了(当然UML也不会再有了),汇编指令集全变了(更别说那些构架了),SOA也被人放进了博物馆。那么算法呢?......也许被封装成硬件芯片,也许分布在网络的某些特定的终端上,但肯定还会被千百万个处理器加载运行。
[解决办法]
我做算法也快一年了,感觉确实算法很难,要看各种论文实现里面的算法看看效果怎么样,然后在进行改进,以便能够真正应用到项目中去。不过,现在好多软件的核心就是算法,算法是很重要的,所以,楼主,既然选择了算法,就坚定地坚持下去吧。
[解决办法]
最开始我对选择哪个行业都无从下手,浑浑噩噩的我也是被这些层出不穷的概念和标准迷茫了很久。试图找到一点不变的东西。
//由于专业小众(各种固体、流体力学)加上没正常毕业,出来完全不知道做哪行,为荒废付出昂贵的代价,一会做电脑网络,一会又做CAD设计,一会又做网站,对这些工作完全找不到乐趣,特别是做网络总是要通宵干活,纯粹一苦力工人。最后混了五六年一事无成后,又随便找了个公司应聘,我说会网络会数据库,于是进了IT部,竟然上来就是用很多年前的PB维护一个系统。慢慢地知道了有面向对象和面向过程的说法,试图找到一种最好用的编程语言,天天搜索里输入“最好的编程语言和工具”,一个月后选择了C++,认为C++能应用底层很强大,结果发现无穷的API和MFC调用。后来又发现dephi,开始被简单高效的前段开发引诱,做了一个月发现dephi在衰落。又在软件开发的朋友的建议下学java“一次开发到处运行”的优点,但我只会一个XP系统,不会别的系统。又去学C#,还好帮助够强大,够面向对象,费了一个多月终于弄清了什么是类,继承,多态这些东西。但过几年C#又会被新的语言取代吧?
突然公司又让我试着优化生产排单系统的算法,搜索了两个星期的资料,发现要用一个遗传算法的东西,让一个拿着1K多工资,程序半吊子入门的人去写出一个遗传算法系统,太富有戏剧性了。然后发现要会遗传算法,必须先读数据结构和算法导论。
于是弄了一个星期的算法,搞了一些类,把最基本的链表,树,图这些弄明白了。也明确了自己的方向----算法。虽然别人说30来岁还混着1K多的工资,那这个人就废了。不过总算找到了一个既能养活自己,又比较有趣的东西。为时还不算晚吧。
[解决办法]
算法还是很有用的东西,虽然我现在的工作中还用不到,但是还是想把它捡起来
ps:ls的朋友是不是可以考虑一下跳槽
[解决办法]
算法就像数学,领域还是挺多的。专门的可以看算法导论,涉及专业领域的有图形处理算法,其实还是数学算法的应用。不管做什么领域的,懂点算法还是非常必要的。
[解决办法]
算法导论是个度?
还没接触,但是知道玩这个肯定要学点这个
[解决办法]
计算数学的魅力就在算法,如果楼主想研究更高深的算法,可以多学一些计算数学

读书人网 >软件架构设计

热点推荐