一边学算法,一边学c语言之冒泡排序(二)

  大部分算法都有一个主要参数n,它是影响算法运行时间的主要因素。

  现在有一台大型计算机执行冒泡排序,另一台微型计算机执行执行贵并排序,它们的输入都是一个规模为100万的有序数组,假设大型计算机每秒执行1亿条指令,微型计算机执行百万指令,那么它们在执行后,微型计算机会先于大型计算机计算完毕,这就是算法的能力。

  再算法分析中使用渐进的数学技巧来表示最坏时间复杂度:表示法、表示法、表示法

  

  表示法(比上不足,比下有余)

  定义:如果存在三个正常数,对于所有的,有,则记作

  例:

    

  证明:

    

    

    右边的不等式再时成立;左边不等式在时成立,那么在以及,得证

 

  表示法(最坏时间复杂度)

  定义:如果存在两个正常数c,,对于所有的,有,则记作

  例:

    

  证明:

    

    

  不等式在时成立,得证。

  

  表示法(最好时间复杂度)

  定义:如果存在两个正常数c,,对于所有的,有 ,  则记作

  例:

    

  证明:

    

    

  不等式在时成立,得证。

 

   从计算时间上可以把算法分成两类:多项式时间算法,指数时间算法。

  多项式时间算法常见:  

  指数时间算法常见:        

 

 

 

posted @ 2013-03-29 22:19  asdfzxcvqwer  阅读(253)  评论(0编辑  收藏  举报