有关时间复杂度

有关时间复杂度

算法时间复杂度(转)

2011-03-0623:28:18|分类:“IT 牛杂”|字号订阅

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

Java 代码

for (j=1; j <=n; j++)

for(k=1; k <=n; k++)

x++;

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

Java 代码

for (j=1; j <=n; j++)

for(k=1; k <=n; k++)

for(i=1; i <=n; i++)

s++;

for (j=1; j <=n; j++)

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!)常数级对数级线性级多项式级指数级阶乘级for(k=1; k <=n; k++)for(i=1; i <=n; i++)

(5)问题时间复杂度的上界和下界

(6)算法时间复杂度的最好情况和最坏情况

2.4算法的空间复杂性

(1)输入数据所占空间

(2)程序本身所占空间

(3)辅助存储空间

有关时间复杂度

算法时间复杂度(转)

2011-03-0623:28:18|分类:“IT 牛杂”|字号订阅

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

Java 代码

for (j=1; j <=n; j++)

for(k=1; k <=n; k++)

x++;

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

Java 代码

for (j=1; j <=n; j++)

for(k=1; k <=n; k++)

for(i=1; i <=n; i++)

s++;

for (j=1; j <=n; j++)

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!)常数级对数级线性级多项式级指数级阶乘级for(k=1; k <=n; k++)for(i=1; i <=n; i++)

(5)问题时间复杂度的上界和下界

(6)算法时间复杂度的最好情况和最坏情况

2.4算法的空间复杂性

(1)输入数据所占空间

(2)程序本身所占空间

(3)辅助存储空间


相关内容

  • 时间复杂度的计算
  • 时间复杂度计算 学习数据结构时,觉得时间复杂度计算很复杂,怎么也看不懂,差不多三年之后,还是不懂,马上就要找工作了,赶紧恶补一下吧: 首先了解一下几个概念.一个是时间复杂度,一个是渐近时间复杂度.前者是某个算法的时间耗费,它是该算法所求解问题规模n 的函数,而后者是指当问题规模趋向无穷大时,该算法时 ...

  • 可研报告收费标准
  • 编写周期与费用标准 服务周期 编撰时间:3-60个工作日. 针对于各类报告,其撰写时间根据具体项目情况而定,撰写时间主要与项目的复杂程度.企业能够提供的基础资料和客户需求有关. 服务收费标准 一.工程咨询类业务 针对业务:项目建议书.可行性研究报告.项目申请报告.资金申请报告.节能评估报告.交通影响 ...

  • 建设工程监理取费标准(发改价格[2007]670号)
  • 颁布单位:国家发展改革委员会 建设部 颁布文号:发改价格[2007]670号 颁布时间:2007年3月3日 执行时间:2007年5月1日 时 效 性:有效 国家发展改革委.建设部关于印发<建设工程 监理与相关服务收费管理规定>的通知 发改价格[2007]670号 国务院有关部门,各省.自 ...

  • 关于次优查找树的构造刘文予解惑
  • ==================================================== From: Wenyu Liu To: [email protected] Subject: Re: Fw: 请刘老师解惑 Date: 04-10-25 23:39:53 =========== ...

  • 数据结构题库
  • 第一章绪论 一,选择题 1.组成数据的基本单位是(C ) A .数据项B .数据类型C .数据元素D .数据变量 2.数据结构是研究数据的(C )以及它们之间的相互关系. A .理想结构,物理结构B .理想结构,抽象结构 C .物理结构,逻辑结构D .抽象结构,逻辑结构 3.算法分析的两个主要方面是 ...

  • 2011年澳门特别行政区C++答案 数据结构试卷及答案考试重点和考试技巧
  • 1.深度为k的完全二叉树所含叶结点的个数最多为( B). A)2k B) 2k-1 C)k D) 2k 2.在数据结构中,与所使用的计算机无关的是数据的 A 结构. A.逻辑 B.存储 C.逻辑和存储 D.物理 3.广义表A=(x,((y),((a)),A))的深度是 A.2 B.3 C.4 D.∞ ...

  • 复杂工程风险管理的信息密度演化计算方法
  • 第37卷第l期 2OO 哈尔滨工业大学学报 JOURNALOFHARBININSTITUTEOFTECHNOLOGY V01.37No.1 5年1月 Jan..2005 复杂工程风险管理的信息密度演化计算方法 西 宝,李一军 ((哈尔滨工业大学管理学院,黑龙江哈尔滨150001,E-mail:xib ...

  • 单链表.双链表.循环链表和静态链表的习题
  • 单链表.双链表.循环链表和静态链表的习题 一.单项选择题 1. 关于线性表的顺序存储结构和链式存储结构的描述中,正确的是( ). Ⅰ. 线性表的顺序存储结构优于其链式存储结构 Ⅱ. 链式存储结构比顺序存储结构能更方便地表示各种逻辑结构 Ⅲ. 如频繁使用插入和删除结点操作,顺序存储结构更优于链式存储结 ...

  • 最新监理收费标准
  • 附件: 国家发展改革委.建设部关于印发<建设工程监理 与相关服务收费管理规定>的通知 发改价格[2007]670号 国务院有关部门,各省.自治区.直辖市发展改革委.物价局.建设厅(委): 为规范建设工程监理及相关服务收费行为,维护委托双方合法权益,促进工程监理行业健康发展,我们制定了&l ...