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

本文探讨了程序执行中的时间效率,通过分析算法运行时间和时间复杂度,强调比较算法性能时只关注数量级。同时提及空间效率,包括空间时间复杂度,指出在设计算法时要考虑这两方面的优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、时间效率

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

  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)按数量级递增顺序为:

  • 在这里插入图片描述

  • 在这里插入图片描述

二、空间效率

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值