算法笔记

时间复杂度常用大O符号表述:

简单说O(n²)表示当n很大的时候,复杂度约等于Cn²,C是某个常数,简单说就是当n足够大的时候,n的线性增长,复杂度将沿平方增长。

O(n)也是差不多的意思,也就是说n很大的时候复杂度约等于Cn,C是某个常数。

O(1)就是说n很大的时候,复杂度基本就不增长了,基本就是个常量C。

举个例子:

要找到一个数组里面最大的一个数,你要把n个变量都扫描一遍,操作次数为n,那么算法复杂度是O(n)。

用冒泡排序排一个数组,对于n个变量的数组,需要交换变量位置n^2次,那么算法复杂度就是O(n^2)。

那么常见数量级如下:

时间复杂度这个东西,其实更准确点说应该是描述一个算法在问题规模不断增大时对应的时间增长曲线。所以,这些增长数量级并不是一个准确的性能评价,可以理解为一个近似值,时间的增长近似于logN、NlogN的曲线。

下面这个到底是更直观了还是让你变得更晕了?

 

 

排序算法图片总结(图片来源于网络):

请先熟悉这些写法:

算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)

 

转载于:https://www.cnblogs.com/huangsxj/p/8618715.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值