算法分析基础

【算法分析的定义】

算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。

【表示时间复杂度的符号】

(1)Θ(西塔):紧确界。            相当于"="

(2)O (大欧):上界。              相当于"<="

(3)o(小欧):非紧的上界。       相当于"<"

(4)Ω(大欧米伽):下界。          相当于">="

(5)ω(小欧米伽):非紧的下界。 相当于">"

【主方法求解递归】

主方法为如下形式的递归提供了一种“菜谱”式的求解方法
  T(n) = aT(n/b) + f(n)
其中a≥1和b>1是常数,f(n)是渐近函数。
上述递归式描述的是这样一种算法的运行时间:
它将规模为n的问题分解为a个子问题,每个子问题规模为n/b,其中a和b都是正常数。
a个子问题递归地进行求解,每个花费时间T(n/b)。
函数f(n)包含了问题分解和子问题解合并的代价。
其中n/b指n/b的上取整或者是下取整,对结果不会造成影响。

 

【主定理】

 

【反例】

例:  T(n) = 2T(n/2) + nlgn

 

posted @ 2017-04-16 13:40  王勋广  阅读(338)  评论(0编辑  收藏  举报