算法——程序的灵魂

算法——程序的灵魂

算法+数据结构=程序”(Niklaus Wirth)

相信只要有编程基础的人都知道这个公式,它是由图灵奖获得者、Pascal之父Niklaus Wirth提出,该公式对计算机科学界的影响程度如同物理界中Albert Einstein提出的“E=mc^2”。

如果将程序比作人的话,那么数据结构相当于骨架肉体,而算法,则是其思想和灵魂。决定一个人的品质的优劣、境界的高低在于他的思想和灵魂,决定一个程序的性能的高低就在于算法的设计。

优秀的算法需要在解决问题的同时考虑时间复杂度和空间复杂度,通俗来说,就是既要运行时间尽可能短,又要占用尽可能少的内存,根据具体问题在二者间做权衡,设计或使用合适的算法来解决问题。

相信每一个从事编程工作的人,都曾在学习过算法后,对程序的认识上升到了新的高度。作为一个计算机专业的学生,对自己还没能系统地掌握算法实在是惭愧。因此第一次注册了自己blog,开始记录自己的学习笔记和心得体会,希望自己学习的同时还能与大家一起交流进步。


下面是我对未来算法学习和博客撰写的设想:

— 首先我是跟随普林斯顿大学的《算法》公开课内容来学习,对于初学算法的人来说,相比《算法导论》可能更加基础也相对容易理解一些。推荐coursera的在线互动学习,或者去b站上看普林斯顿大学 算法课程,部分小节有中文翻译。官方讲义和demo网址Algorithms, Princeton.,参考书就是教授自己出的《Algorithms, 4th Edition(算法,第四版)》。

— 课程中采用Java语言编程,在学习算法的同时还可以进一步强化Java编程能力,网站上有很多程序源码可以参考,课上讲的实现算法的代码也十分简洁漂亮,非常值得学习。

— 然而个人觉得如果只是拿课上的代码来写博客,自己不动手写程序的话,学习效果就大打折扣了,所以我决定换一种语言重新实现一下,因此我选择个人最喜欢的语言Python来实现,同时也可以将两种语言比较学习,去体会它们的设计思想的差异。


最后立个flag,希望自己能坚持下来,尽管后面课题组做项目可能会很忙,自己也要开始做论文,但是既然开始对算法感兴趣并且下定决心要好好学习算法,那就至少在2017年最后这几个月内把这门课啃下来吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值