- 算法是什么
- 为什么要学习算法
- 怎样学习算法
算法是什么
- 算法是计算机用来解决问题的一系列指令。
(1)算法的每一个步骤要没有歧义。
(2)相同的输入总是得到相同的输出。
(3)注意合理输入的范围。 - 算法是研究计算机性能和资源利用的理论分析。
(1)算法研究计算机性能(performace),主要体现在程序运行的时间长短。
(2)算法研究计算机的资源利用,主要体现在计算机内存、网络通信、随机比特、磁盘操作等资源的利用。因为资源不是无限的,程序运行需要收到资源的制约。
为什么要学习算法
为什么要研究算法其实是在说为什么要在有了一种解决问题的算法之后还要提升其性能?
MIT公开课算法导论中对这个问题有一个很好的解答。
我们在写程序时,有很多比算法效率更重要的东西,比如程序的健壮性、用户友好、正确、安全等等。这些都比算法重要,那么为什么我们仍要研究算法?因为算法性能越好,就可以为其他特性做出牺牲,为了用户友好做出牺牲,为了安全做出牺牲,如果没有高效的算法,那么就不能在拥有这些特性的同时保持性能。
怎样学习算法
Algorithm Analysis → Algorithm Design
通常分析算法时,分析它的时间复杂度和空间复杂度。
不同的算法书的层次架构不同,有些书按照研究问题分类,有些书按照解决方法分类。我们这里使用第一种方法,并在最后按第二种方法总结。


网友评论