数据结构学习笔记①

本文是关于数据结构学习的笔记,重点探讨了时间复杂度和空间复杂度的概念。时间复杂度用于衡量算法运行时间,通过大O记法表示,如O(1),O(logn),O(n),O(n2)等。空间复杂度则关注算法运行所需内存空间。文章还提及时间复杂度和空间复杂度之间的相互转化关系。

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

时间复杂度和空间复杂度

2019.3.13

参考资料:

函数表达式相关

  1. 一个高级语言编写的程序在计算机上运行时所消耗的时间取决于以下因素
  • 算法采用的策略,方案
  • 编译产生的代码质量 ;
  • 问题的输出规模
  • 机器执行指令的速度;
  1. N阶级相同时,函数的渐近增长与N的系数有关。
  2. 随着N的增大,表达式中N后面加上或减去的常数几乎不影响最终的算法变化曲线。
  3. 与最高次项相乘的常数也可以忽略

时间复杂度

  1. 定义:在进行算法分析的时候,语句总体执行次数T(n)是关于问题规模次数n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。
  2. 通俗说法就是算法的运行时间。
  3. 时间复杂度的表示方式为:O(频度)
    这种表示方式称为大“O”记法
  4. 计算方法:
  • 从各步骤提取其所需要的执行时间(函数表达式)。
  • 去掉运行时间中的所有加法常数。(例如 n2+n+1,直接变为 n2+n)
  • 只保留最高项。
  • 如果最高项存在但是系数不是1,去掉系数
  1. 常用的时间复杂度的排序
    O(1)常数阶 < O(logn)对数阶 < O(n)线性阶 < O(n2)平方阶 < O(n3)(立方阶) < O(2n) (指数阶)
  2. 一般要求只要算“复杂度”的时候一般都是指时间复杂度。

空间复杂度

通俗说法就是运行算法所需的内存空间大小。

其它

算法的时间复杂度和空间复杂度是可以相互转化的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值