算法复习(1)

  算法:特定的计算模型下,解决特定问题的指令序列。

  算法要具有:

  确定性 —— 由基本操作组成的序列

  有穷性与正确性 —— 经过有穷次基本操作,可以解决指定的问题

  可行性 —— 每一个基本操作都可以实现 

  这些是基本的,好的算法还要有鲁棒性,能处理各种退化情况。还要提高算法的可读性。

  对于算法,最重要的是效率!

 

  算法的复杂度包括时间复杂度和空间复杂度。每一次运行过程中消耗的存储空间,都不会多于操作次数,时间复杂度是空间复杂度的一个上界。除非针对特殊情况,一般不考试空间复杂度。

  度量渐进复杂度,常用大O记号,大O记号意味着最坏情况,例如起泡排序中的完全逆序。最好的情况情况与平均情况应用较少。

  算法的复杂度情况:

  O(1)常数复杂度,O(logn)对数复杂度,O(n)线性复杂度,O(n^c)多项式复杂度,O(2^N)指数复杂度。

  O(n^c)与O(2^n)是有效算法与无效算法的分界。

 

posted on 2013-11-14 23:59  4IT  阅读(130)  评论(0编辑  收藏  举报

导航