第一章 算法概述

特性:输入、输出、确定性、有限性、可行性。

(1)输入:有0个或多个外部提供的量作为算法的输入。

(2)输出:算法产生至少一个量作为输出。

(3)确定性:组成算法的每条指令是清晰,无歧义的。

(4)有限性:算法 的执行次数是有限的,执行每条指令的时间也是有限的。

(5)可行性:算法中的所有运算都是基本的,原则 上它们都能够精确地进行,而且进行有穷次即可完成。

算法复杂性分析

n算法复杂性 = 算法所需要的计算机资源

1、算法的时间复杂性T(n) ;

指执行算法所需计算工作量

2、算法的空间复杂性S(n)。

指执行算法所需的内存空间

n其中n是问题的规模(输入大小), T(n) 指基本运算次数(假设基本运算所需时间均为单位时间)

算法的时间复杂性

(1)最坏情况下的时间复杂性

Tmax(n) = max{ T(I) | size(I)=n }

(2)最好情况下的时间复杂性

Tmin(n) = min{ T(I) | size(I)=n }

(3)平均情况下的时间复杂性

Tavg(n) =image

其中I是问题的规模为n的实例,p(I)是实 例I出现的概率。

利用某一算法处理一个问题尺度为n的输入所需的时间,称为该算法的时间复杂性。记为T(n)

当问题的尺度递增时,时间复杂性的极限称为渐进时间复杂性。

一般地,对于足够大的n,常用的时间复杂性存在以下顺序:

O(1)< O(logn)< O(n)< O(n*logn)<O(n2)<O(n3)…

<O(2n)<O(3n)<…<O(n!)

image

image

image

image

猜你喜欢

转载自my.oschina.net/u/2615680/blog/644140