写在最前面:学习算法的意义

我们都知道更好的算法往往给计算机带来了更好的性能。

但是我们都知道在现在我们的日常生活中性能很多时候并不是第一位的。比如数据信息安全,用户体验,正确性,健壮性等等都是比性能更加重要的。

既然算法带来的性能没有我们想的那么重要我们为什么要学习算法给计算机带来性能的提升呢?
第一:性能常常决定着用户体验,我想没有用户想一直等待网页慢慢跳转加载。一直等待机器不停的转来转去却收不到任何有用的信息。
第二:我认为算法是一种描述程序行为的语言,学习好算法能让我们更加直观,更加深入的了解程序的运行。
第三:我们其实可以把更好的算法所带来的性能的优化理解为一种货币。如同赛车一样,所有对例如舒适度,美观,广告效果的提升都是以牺牲赛车速度为代价的。程序的性能也是如此,对例如用户操作友好和数据安全保护等也一样要以牺牲程序的性能为代价,只有不管革新算法提升性能才能更好的支持程序的其他属性。
第四:通过算法的学习我明白了一个算法的要义:我们判定一个算法的好坏通常都忽略掉那些依靠计算机硬件属性的常量,更侧重关心随着输入条件的变化运行时间的改变速率的的变化。
因为只要数据量无限加大无论计算机的性能差距有多悬殊,更好的算法的执行之间终究会少于
较差的算法所花的执行时间。
所以我们可以在计算时间复杂度的时候忽略掉许多非主要影响的细节,突出主要矛盾。
最后,研究算法是个漫长的过程,但是一次次成功突破自己的喜悦,一次次追求更高的运行速度这本身也是一种快乐。

你可能感兴趣的:(算法)