算法的时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度是衡量算法效率的两个重要指标。

衡量一个算法的好坏,一般是从时间和空间两个维度去衡量的。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。
 

一、时间复杂度
1. 定义:时间复杂度是指算法执行所需的时间与问题规模之间的关系。问题规模通常用输入数据的大小来表示。(简单的来说就是执行这个程序时,需要循环多少次)
2. 表示方法(大O渐进表示法):一般用大 O 符号表示。例如,O(n)表示时间复杂度与输入数据的大小 n 呈线性关系。
3. 常见时间复杂度类型:
- 常数时间复杂度 O(1):无论输入数据的大小如何,算法执行的时间都是恒定的。例如,访问数组中的单个元素。(简单来说就是循环次数为常数)

d538e65c628b4314900841ef8282807a.png

 - 对数时间复杂度 O(log n):算法执行的时间与输入数据的大小呈对数关系。例如,二分查找算法。
- 线性时间复杂度 O(n):算法执行的时间与输入数据的大小呈线性关系。例如,遍历一个数组。
- 线性对数时间复杂度 O(n log n):常见于一些高效的排序算法,如快速排序和归并排序。
- 平方时间复杂度 O(n²):算法执行的时间与输入数据的大小的平方呈正比关系。例如,冒泡排序算法。
- 立方时间复杂度 O(n³)及更高:算法执行的时间与输入数据的大小的立方或更高次方呈正比关系。

59d0c71a29c94d93b58f691bd0f92ff5.png 

二、空间复杂度
 
1. 定义:空间复杂度是指算法执行所需的存储空间与问题规模之间的关系。(简单来的说是开辟变量占据额外临时存储空间的量度)
2. 表示方法(大O渐进表示法):同样用大 O 符号表示。例如,O(n)表示空间复杂度与输入数据的大小 n 呈线性关系。
3. 常见空间复杂度类型:
- 常数空间复杂度 O(1):算法执行所需的存储空间是恒定的,不随输入数据的大小而变化。
- 线性空间复杂度 O(n):算法执行所需的存储空间与输入数据的大小呈线性关系。例如,创建一个与输入数组大小相同的新数组。
- 平方空间复杂度 O(n²):算法执行所需的存储空间与输入数据的大小的平方呈正比关系。

32c8d0ab8ec64f60be4f15b869139e37.png
 
 

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值