时间复杂度与空间复杂度浅析

本文深入浅出地介绍了时间复杂度和空间复杂度的概念,包括它们的定义、度量方法和常见类型。通过示例解析了不同时间复杂度如O(1)、O(n)和O(log2n)的含义,并讨论了时间复杂度的加法规则和除法规则。同时,提到了空间复杂度的重要性,指出原地工作的算法具有O(1)的空间复杂度。
摘要由CSDN通过智能技术生成

首先要弄明白什么是时间复杂度,大部分的书是通过语句的频度来分析算法中时间复杂度的,或者说将算法中基本操作的执行次数作为算法时间复杂度的度量,实际上,时间复杂度就是一个函数,这个函数用来计算执行基本操作的次数
事实上大同小异,一个语句的频度f(n)就是指该语句在算法中被重复执行的次数,将算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数
所以将算法的时间复杂度记为(一般用大O表示法):
T(n)=O(f(n)),此处O的含义即为T(n)的数量级,因为求基本操作次数就是解函数f(n),然后取其中增长最快的项系数要变为1)作为时间复杂度的度量

时间复杂度分为三种情况:

  • 最坏时间复杂度
  • 平均时间复杂度:指所有输入实例在等概率出现的情况下,算法的期望运行时间
  • 最好时间复杂度

时间复杂度规则:

  • 加法规则:
    T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n))
  • 除法规则:
    T(n)=T1(n)*T2(n)=O(f(n))*O(g(n))=O(f(n)*g(n))

部分时间复杂度举例:

  • O(1)
    Ο(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值