数据结构-算法-时间复杂度

算法特性

  • 有穷:步骤有穷、时间有限
  • 确定:语句无二义
  • 可行:可运行可实现
  • 输入:输入可有可无
  • 输出:与输入有确定关系

好算法的标准

  • 正确:能满足问题
  • 可读:方便阅读
  • 健壮:容错处理
  • 通用:对同数据类型的其他数据可用
  • 高效率低存储

时间复杂度

算法的控制结构

  • 顺序
  • 分支
  • 循环
  • 加减乘除赋值…(原操作)

算法执行时间

原操作的执行次数乘以原操作的执行时间)的累加

执行时间我们无法计算,但是,执行时间与原操作执行次数之和成正比,所以可用

频度T(n)( ->原操作的执行次数 : )表示算法的执行时间

数据结构-存储结构与逻辑结构-算法-时间复杂度

T(n)转[O(n)时间复杂度]

保留T(n)的最高阶,忽略低阶项与常系数

数据结构-存储结构与逻辑结构-算法-时间复杂度

一般判断算法也不用算T(n)了,目测出O(n)即可

  • 常数阶O(1) :无循环语句
  • 线性阶O(n):一重循环
  • 平方阶O(n方):二重循环
  • 立方阶O(n立方):三重循环
  • 对数阶O(log2[n])树的结点是2的n次方,这是有关树的时间复杂度 / O(nlog2[n])典型堆排序
  • 指数阶O(2的n次方)

习题

数据结构-存储结构与逻辑结构-算法-时间复杂度
数据结构-存储结构与逻辑结构-算法-时间复杂度

相关文章: