数据结构-软件技术基础-ch1.pptVIP

  • 4
  • 0
  • 约6.7千字
  • 约 42页
  • 2017-11-25 发布于湖北
  • 举报
数据结构-软件技术基础-ch1

* 一个特定算法的“运行工作量” 的大小,只依赖于问题的规模(通常用整数n表示),或者说,它是问题规模的函数。 * 假如,随着问题规模 n 的增长,算法执行时间的增长率和 f(n) 的增长率相同,则可记作: T (n) = O(f(n)) 称T (n) 为算法的(渐近)时间复杂度。 * 如何估算 算法的时间复杂度? 算法的时间特性用执行基本操作次数来度量。 * 常见的时间复杂度: 常数阶O (1) 对数阶O (log2n) 线性阶O (n) 线性对数阶O (nlog2n) 多项式阶O (n2)、O (n3) 指数阶O (2n) * 多项式阶时间关系为: O(logn)O(n)O(nlogn)O(n2)O(n3) 指数时间的关系为: O(2n)O(n!)O(nn) O(1)多项式阶指数阶 当n取得很大时,指数阶时间算法和多项式阶时间算法在所需时间上非常悬殊。 因此,只要有人能将现有指数时间算法中的任何一个算法化简为多项式时间算法,那就取得了一个伟大的成就。 * 四、算法的存储空间需求 算法的空间复杂度定义为: S(n) = O(g(n)) 上式表示随着问题规模 n 的增大, 算法运行所需存储量的增长率与 g(n) 的增长率相同。 * 算法的存储量包括: 1.输入数据所占空间 2.程序本身所占空间 3.辅助变量所占空间 * 设计好算法的必要性

文档评论(0)

1亿VIP精品文档

相关文档