Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 707|回复: 0

java算法分析精述

[复制链接]

该用户从未签到

发表于 2011-9-12 22:39:20 | 显示全部楼层 |阅读模式
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
   
[pre] for (j = 1; j <= n; j++)          for(k = 1; k <= n; k++)              x++;[/pre]
      分析: 算法段中语句"x++", "k<=n", "x++"的频度是n*n, 语句"j=1", "k=1"的频度是1, 语句"j<=n", "j++"的频度是n。
因此,算法运行的时间是3*n*n + 2*n + 2


  (2) 例子2
     
[pre]for (j = 1; j <= n; j++)          for(k = 1; k <= n; k++)             for(i = 1; i <= n; i++)                   s++;[/pre]该算法的时间复杂度为近似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) 辅助存储空间
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-4-28 22:30 , Processed in 0.409679 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表