数据结构与算法:衡量算法好坏的指标——复杂度

1.复杂度

复杂度,用来分析算法执行过程中,所需要的资源。
时间复杂度是衡量所需要的时间。
空间复杂度,是衡量所需要的(内存)空间。

1.1 时间复杂度

特性

1.衡量算法执行所需时间
2.根据「常数操作」次数推定
3.一般以最大数据量N作为衡量基准

如何表示?

通过O(x)计数法表示

O 用来表示 最差情况;θ 表示平均情况;Ω 最好情况

时间复杂度其实表现的是一种趋势,随着数据量增加,消耗的时间呈什么样态地增长(常数操作次数的变化趋势)

常见的复杂度

O(n²)

代表指数级增长

O(n)

线性增长

O(logn)

对数增长

O(1)

不增长

用函数图像来表示时间复杂度来看:
在这里插入图片描述

在数据量极少的时候,可能看不出算法的优劣,只有在数据量极大的时候,讨论 时间复杂度才有意义。

1.2 空间复杂度

同样空间复杂度是指,所需要的内存大小增长趋势。比如用来存储N个数,空间复杂度就是O(N),用来存储有限个数,空间复杂度是O(1)……以此类推。

O() 中的数字或者字母,代表了一种趋势,而不是一个具体的值。

额外空间复杂度

除了已知占用空间,要完成算法,还需要多少空间。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值