第二讲 算法分析概要与线性表.ppt

算法复杂度概念 线性表(上) 2008/02/19 关于浮点数四则运算的定义 算法复杂度问题: 一般是指问题随规模的增长算法所需消耗的运算时间和内存空间的增长趋势。 因此不考虑计算机本身硬件的特质,一般也忽略算法所消耗的与问题规模无关的固定量的计算与空间。 如何描述增长趋势的高低? 不考虑不变量: C + f(n) ? f(n) 忽略不能与时俱进的因素 k * f(n) ? f(n) 区分同类型的增长方式的不同量级 f(n) = nk ? f(n) = nk+c 专注增长趋势中最本质的区别 C ? log n ? n ? nk ? kn (k 1) 算法复杂度的考察方法 考察一个算法的复杂度,一般考察的是当问题复杂度n的增加时,运算所需时间、空间代价f(n)的上下界。(Asymptotic upper or lower bound) 进一步而言,又分为最好情况、平均情况、最坏情况三种情况。通常最坏情况往往是我们最关注的。 算法复杂度的上界(大O表示法) 大O表示法是用一个函数f(n)来描写算法复杂度的上界的表示方式。记为:O(f(n)) 大Θ表示法 如果能同时找到算法复杂度的上下确界函数g(n),f(n)。 且g(n) = f(n),则算法复杂度能更精确的表达为Θ

文档评论(0)

1亿VIP精品文档

相关文档