`

算法分析精述分享

阅读更多
1. 算法分析的评价体系
   评价算法的三条主要标准是:

   (1) 算法实现所消耗的时间
   (2) 算法实现所消耗的存储空间,其中主要考虑辅助存储空间
   (3) 算法应易于理解、易于编码、易于调试。

2. 算法的时间复杂性
2.1 和算法执行相关的因素

   (1) 问题中数据存储的数据结构
   (2) 算法采用的数学模型
   (3) 算法设计策略
   (4) 问题的规模
   (5) 实现算法的程序设计语言
  (6) 编译算法产生的机器代码的质量
   (7) 计算机执行指令的速度

2.2 算法时间效率的衡量方法

   (1) 事后分析法
       先将算法用程序设计语言实现,然后度量程序的运行时间,这种方法成为事后分析法。你能想到它的缺点???

   (2) 事前分析估算法  
       一个算法的运行工作量的大小,只依赖于问题的规模(通常用整数量n表示),或者说算法的时间效率是问题规模的函数。
假如随着问题规模n的增长,算法执行时间的增长率和函数f(n)的增长率相同,则可记作:T(n) = O(f(n)), T(n)简称时间复杂度,
O是数量级的符号。

2.3 时间复杂度估算

    算法的执行时间 =  $[原操作的执行次数 * 原操作的执行时间], 其中, $表示累加.

    语句的频度指的是该语句重复执行的次数。

   (1) 例子1
    
 for (j = 1; j <= n; j++)
          for(k = 1; k <= n; k++)
              x++;

      分析: 算法段中语句"x++", "k<=n", "x++"的频度是n*n, 语句"j=1", "k=1"的频度是1, 语句"j<=n", "j++"的频度是n。
因此,算法运行的时间是3*n*n + 2*n + 2


  (2) 例子2
     
for (j = 1; j <= n; j++)
          for(k = 1; k <= n; k++)
             for(i = 1; i <= n; i++)
                   s++;
     该算法的时间复杂度为近似n*n*n.

  (3) O    
     在算法的复杂度分析中经常使用一个记号O,读作大O,它是数量级Order的第一个字母。当一个算法的运行时间为n*n+n+1时,
由于n*n+n+1和n*n的数量级相等(该表达式当n足够大时约等于n*n),称它为这个算法的渐进时间复杂度,简称算法的时间复杂度,
记作:T(n) = O(n*n).


  (4) 几种数量级
   
    O(1)            常数级
    O(logn)         对数级
    O(n)            线性级
    O(n的c次方)     多项式级
    O(c的n次方)     指数级
    O(n!)           阶乘级
 
  (5) 问题时间复杂度的上界和下界 
  (6) 算法时间复杂度的最好情况和最坏情况

2.4 算法的空间复杂性

   (1) 输入数据所占空间
   (2) 程序本身所占空间
   (3) 辅助存储空间
    
分享到:
评论
3 楼 andy54321 2010-06-29  
看了,
还有下文吗
2 楼 zhangwe415 2010-06-20  
是算法分析
1 楼 westlifeljz 2010-06-19  
你好想在讲数据结构吗?

相关推荐

    数据结构与算法分析C++描述习题答案

    ### 数据结构与算法分析C++描述习题答案 #### 一、引言 《数据结构与算法分析C++描述习题答案》这本书是基于Mark Allen Weiss教授的经典教材《数据结构与算法分析》编写的答案手册。Weiss教授的原著被誉为20世纪最...

    数据结构与算法分析C++描述分享.pdf

    数据结构与算法分析C++描述分享.pdf

    数据结构和算法分析C语言描述习题答案(全部)

    数据结构和算法C语言描述的全部答案,网上留传的是1-9章,我这里把1-12章全部拿出来给大家分享. 数据结构和算法C语言描述的全部答案,网上留传的是1-9章,我这里把1-12章全部拿出来给大家分享.

    数据结构与算法分析——java语言描述(第二版) 习题答案

    数据结构与算法分析——Java语言描述(第二版)是普林斯顿大学Mark Allen Weiss的经典之作,但是网上很少能找到Java描述第二版的课后习题,连作者的个人主页也明确表示不提供课后习题,只能到出版商那里去索取,这个...

    数据结构与算法分析:C语言描述第二版课后习题答案及代码.zip

    数据结构与算法分析是计算机科学中的核心课程,它探讨如何高效地存储、组织和操作数据。C语言描述的《数据结构与算法分析》第二版,通常由Mark Allen Weiss撰写,是一本广泛使用的教材,深入讲解了这些关键概念。这...

    算法及算法描述教学设计.doc

    最后,学生需要理解如何科学、合理地选择和设计算法,培养他们在面对实际问题时的逻辑思维和分析能力。 二、内容分析 教学的重点在于算法的概念理解和算法描述,特别是通过自然语言和流程图的结合。教学难点在于...

    算法设计与分析供大家分享

    其次,算法分析是评估算法效率的关键步骤。常见的效率度量包括时间复杂度和空间复杂度。时间复杂度描述了算法运行时间与输入规模的关系,如O(1)表示常数时间,O(n)表示线性时间,O(n^2)表示平方时间等。空间复杂度则...

    广工 算法设计与分析试卷

    1. **算法分析复习题目及答案.doc**:这份文档可能包含了一系列的算法分析题目,涵盖了排序、搜索、图算法、动态规划等经典算法主题。每个题目后面都有对应的解答,解题步骤可能详细地阐述了算法的设计思路、时间...

    常用算法程序集(C语言描述)第三版光盘徐士良

    7. **算法分析与优化**:书中可能会讨论每种算法的时间复杂度和空间复杂度,以及如何通过优化算法来提高效率。理解这些概念对于成为高效的程序员至关重要。 8. **算法设计原则**:徐士良先生可能会分享一些设计和...

    分享C-Free5注册码及C-Free V3.5.2 注册算法分析

    ### C-Free 5注册码与C-Free ...总结来说,对于C-Free V3.5.2的注册算法分析不仅可以帮助用户更好地使用这款软件,还能够提升个人的技术水平。但在这个过程中,一定要注意遵守相关法律法规,尊重软件开发者的劳动成果。

Global site tag (gtag.js) - Google Analytics