数据结构 - 算法的时间效率和空间效率

一、时间效率

程序在计算机上执行所消耗的时间。
两种估算方式:

  1. 事后统计
  2. 事前分析
  • 算法运行时间= 一个简单操作所需的时间X简单操作次数

  • 算法运行总时间 = Σ每条语句执行次数(即:每条语句频度)X该语句执行一次所需的时间

  • 每条语句执行一次所需的时间,是由机器本身软硬件环境决定的,与算法无关。

  • 因此,我们可以假设每条语句所需时间均为单位时间,因此对算法的运行时间的讨论,可以转化为讨论该算法中所有语句的执行次数,即频度之和(T(n))。

  • 为了便于比较不同算法的时间效率,我们仅比较它们的数量级。即为:时间复杂度(全称:渐进时间复杂度)

  • 例如:T1(n)=10n²,T2(n)=5n³。则T1(n)=O(n²),T2(n)=O(n³)

  • T(n)=O(f(n))。算法中基本语句重复执行的次数是问题规模n的某个函数f(n)。【基本语句即为算法中执行次数最多的语句,一般都是循环中嵌套最深的语句。 】

  • 时间复杂度T(n)按数量级递增顺序为:

  • 在这里插入图片描述

  • 数据结构 - 算法的时间效率和空间效率_第1张图片

二、空间效率

涉及空间时间复杂度S(n)=O(n)。
可参考:算法空间复杂度分析

你可能感兴趣的:(算法,数据结构)