钟润兴谈自己学习算法的体会
来源:互联网 发布:预算软件破解 编辑:程序博客网 时间:2024/05/21 22:53
算法对大多数人来说,很无聊,钟润兴也如此,他说自己刚开始兴趣点根本不在这里,特别是大一的时候,既看不懂,又没有兴趣。这种东西不容易形成分享,你说自己做了一个算法,跟别人展示一下,别人听着也觉得枯燥。
他说,国外的小朋友一般都是从做小游戏开始的,所以一开始做有界面的程序很重要,它易于分享,做出来之后也比较有成就感,钟润兴自己对算法产生兴趣还是从做了一个下棋软件开始的。
“你知道,毛概那种课,大家也不听,然后就用来做软件”,到五一劳动节的时候,七天有六天都在开发软件,中途为了应付考试,停了两个月,最后拿了个二等奖,不过自己已经很满足了,因为大二才真正开始学编程,大一的时候修了C语言,只拿了六十几分,感觉什么也没学到,大一就过去了,做下棋软件的Java语言还是看了传智播客毕老师的视频教学课学的,大学以前唯一做的和计算机相关的事情就是打游戏。
因为做了下棋软件,再加上自己本来对数学感兴趣,所以从去年8月开始,参加了学校的ACM队,开始做题目,一开始大家采用的都是原始“暴力”解决方法,时间长了,学习了各种常用算法的解题方法,比如搜索、动态规划、高级数据结构等。
并且随着研究的深入,自己也开始关注如何优化算法的时间和空间复杂度,比如以前刚刚开始对于1个程序要求1秒3秒没有什么概念,对于内存要求也不清楚,但有一些数据得用特殊的数据结构存储,这样插入数据、删除数据才能更快,比如一个经典的约瑟夫问题,如果暴力模拟时间复杂度就是O(n^2),但是用了好的数据结构,那么复杂度可以达到O(nlg(n)),当n=1000的时候,就快了100倍。
对于训练强度,钟润兴说,自己不是保持每天做多少,而是采用“一个集中时间高强度地做一件事情+一个长度稍微大一点的巩固练手”这样的方式,按周期去练习,比如对CSDN的在线编程比赛,自己会连续集训一个月,以后只要巩固就可以了,毕竟题目数不清做不完,但只要知道常见的解法和题型就可以了,只要了解够了,就能领略到一些相通的东西。
当然,查看参考资料也很有必要,博客方面推荐CSDN的博客,书籍方面,《世界是数字的》这本书很不错,它抛开很多刻板理论,用很通俗的语言去介绍硬件、软件、网络、通信、编程等,虽然这本书并非专门针对算法,但对了解整个计算机世界很有帮助。另外刘汝佳的《算法竞赛入门经典》也很不错,对那些没有专门接受算法训练的学生很有帮助,在学完这本书并做了一定量题目之后,推荐《挑战程序设计竞赛》。
一般来说,编程算法得积累上100个小时才算开始进入正轨,现在学东西就像练内功,招数不要紧,关键内力要浑厚,内力积累到一定程度了,就好出招了。
- 钟润兴谈自己学习算法的体会
- 对自己学习的体会
- KMP算法的自己体会和实现
- 学习算法的一点体会
- 学习KMP算法的一点个人体会
- 自己的一些体会
- 我自己对英语学习的心得与体会
- 体会 AND 自己的规划
- 学习C#的体会
- 学习java的体会
- 学习<决定>的体会
- 学习的一些体会
- 学习的一些体会
- 如何使自己跳得更高?------学习跳蚤效应的五点体会
- (转载)(指引自己)Linux学习路上的体会()
- 新手如何学好Android?——结合我自己学习Android的体会(转)
- 自己升级 ssh 的一次体会!
- arcgis server部署 自己安装的体会
- Android手机安全卫士内存占用表盘动画实现
- ComputeArea
- CSS教程:相对、绝对定位及布局和浮动
- POJ 1426 Find The Multiple
- zstu4143 Tree Query (函数式线段树)
- 钟润兴谈自己学习算法的体会
- log4j入门实例
- direct3d顶点
- UML 类图简单总结
- Cocos2dx 3.0rc particle粒子管理(更新,封装粒子管理,提高生产效率)
- SQL语法及函数
- JBOSS EAP 6 系列一 新特性
- 猎豹清理大师波浪动画实现
- 阿里巴巴2011笔试题