码迷,mamicode.com
首页 > 编程语言 > 详细

算法 笔记1 时间复杂度计算

时间:2016-05-09 00:01:49      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

评价一个算法的优劣应该从三个方面判断

1.时间复杂度 : 执行算法所耗费的时间,即时间复杂度

2.空间复杂度 : 执行算法所耗费的存储空间,主要是辅助空间

3.可读性和可操作性 : 算法应当易于理解,易于编程,易于调试等

 

时间复杂度

 

一般情况下,将算法所要求求解问题的输入量称为问题的规模,并用一个正整数n来表示

T(n)就是该算法的时间耗费,他是该算法所求问题规模n的函数

算法中基本操作重复执行的次数时问题规模n的某个函数f(n)

算法的时间量度记为: T(n) = O(F(n))

 

时间复杂度的计算

假如将算法中基本操作的重复执行次数看成是问题规模n的某个函数f(n),算法的渐进时间复杂度记作: T(n) = O(F(n))。它表示随问题规模n的增大。算法执行的增长率和f(n)的增长率相同,其中f(n)一般为算法中频率最大的语句的频率。

在分析算法时,往往对算法的时间复杂度和渐进时间复杂度不予区分,而经常是将渐进时间复杂度T(n) = O(f(n)) 简称为时间复杂度。

1.在难精确计算基本操作执行次数(或语句频度)的情况下,只需要求出它关于n的增长率或阶即可。

2.如果一个算法的执行时间是一个与问题规模n无关的常熟,即使是一个较大的常数,该算法的时间复杂度都为常熟阶,记作T(n) = O(1) 

 

常见的时间复杂度按数量级递增排列

常数阶 O(1)

对数阶 O(log2n)

线性阶 O(n)

线性对数阶 O(nlog2n)

平方阶 O(n^2)

立方阶 O(n^3)

..k次方阶 O(n^k)

指数阶 O(2^n)

阶乘阶 O(n!)

 

空间复杂度

类似于时间复杂度,一个算法的空间复杂度 S(n) 定义为该算法所耗费的存储空间

空间复杂度的计算

1.存储空间本身所占用的存储空间

2.算法的输入输出数据所占用的存储空间

3.算法在运行过程中临时占用的存储空间

 

算法 笔记1 时间复杂度计算

标签:

原文地址:http://www.cnblogs.com/sz-zzm/p/5471900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!