干货|算法复杂度分析看这一篇就够了

干货|算法复杂度分析看这一篇就够了

导读概述

互联网行业中数据结构和算法尤为重要,互联网软件特点:高并发、高性能、高扩展、高可用、海量数据,对编程的追求,了解数据结构和算法能让我们的代码精益求精。
那如何评价算法的好坏呢,有2个重要的指标:时间复杂度和空间复杂度,时间维度是指算法运行结束消耗的时间,空间维度则是执行算法所需占用的内存空间。

本文将从以下几个方面分享给大家:
1.什么是时间复杂度
2.时间复杂度计算规则
3.时间复杂度案例分析
4.什么是空间复杂度
5.空间复杂度计算规则
6.空间复杂度案例分析


时间复杂度

如何计算一个算法的时间复杂度呢

通常采用大O表示法来表示
用 T(n) = O(f(n)) 表示

大 O 时间复杂度表示法,实际上并不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势,所以也叫渐进时间复杂度,简称时间复杂度(asymptotic time complexity)。

常见的时间复杂度大O表示法



1.O(1):常量级

这种是最简单的,也是最好理解的,就是常量级
不是只执行了一行代码,只要代码的执行不随着数据规模(n)的增加而增加,就是常量级
在实际应用中,通常使用冗余字段存储来将O(n)变成O(1)。


2.线性阶:O(n)


上面的例子中时间复杂度T(n)=O(2n+1),当n无限大时,低阶、常量、系统都可以忽略
即上例中的时间复杂度为T(n)=O(n),也就是代码执行时间随着数据规模的增加而增长.


3.线性阶O(m+n)

m和n是代码的两个数据规模,而且不能确定谁更大,此时代码的复杂度为两段时间复杂度之和,即 T(n)=O(m+n)
记作:O(m+n)


4.O(m*n)

根据乘法法则代码的复杂度为两段时间复杂度之积,即
T(n)=O(m*n)
记作:O(m*n)
当m==n时,为O(n*n)


5.平方阶 O(n*n)

上例为:T(n)=O(n*n)
也就是代码执行时间随着数据规模的增加而平方增长
依此类推,时间复杂度也成为渐进增长:
两次嵌套for时间复杂度:O(n^2)
三层嵌套for时间复杂度:O(n^3)
k层嵌套for时间复杂度:O(n^k)

6.O(n^2)

时间复杂度: T(n)=O()+O(n)
简写:T(n)=O()
注:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积(乘法法则)

7.对数阶 O(logn)

O(logn)推导过程:
以上代码,while循环中每次将i乘以2,直到i大于n,结束此循环。
如循环n次后,i>n,循环结束,也就是2的i次方等于n即i=log2n,也就是说循环log2n次以后,代码就结束了。代码的时间复杂度为O(logn)。
找出while循环中的结束条件,判断时间复杂度。带有while循环的代码,大概率是对数时间复杂度为
T(n)=O(n*logn)即O(logn)

小结:

常用的时间复杂度所耗费的时间从小到大依次是:
O(1) < O(logn) <O (n) < O(nlogn) < O() < O() < O() < O(n!) < O(nn)

空间复杂度

例如将一个数组拷贝到另一个数组中,就是相当于空间扩大了一倍:
记作:T(n)=O(2n),忽略系数。即为O(n)


常见的空间复杂度

空间复杂度比较常用的有:O(1)、O(n)、O(n²)


1.O(1)空间复杂度

以下i,j和count变量所分配的临时空间不随处理数据量的变化而变化,因此它空间复杂度为O(1)


2.O(n)空间复杂度

上述代码中的第一行代码new了一个数组,数组中有n个数据,剩余代码中虽然有循环,但是没有再分配新的空间,因此,该代码段的空间复杂度主要体现在第一行,为O(n)。平方阶的空间复杂度与之类似,依此类推即可。
常见的空间复杂度就是O(1)、O(n)、O(),而O(logn)、O(nlogn)空间复杂度平时用的少些。

后记

本文对算法中的时间复杂度和空间复杂度进行了简单的分析和介绍,希望对大家有所帮助,如果感觉有所收获,可以动动小手指给点个赞,感谢阅读!

代做工资流水公司银川做薪资流水单宁波工作收入证明代办哈尔滨转账流水模板蚌埠房贷流水海口银行对公流水制作南阳房贷流水制作宿迁背调工资流水模板许昌背调银行流水报价柳州银行流水账单样本柳州公司流水办理长春工资银行流水办理上海入职工资流水开具海口打背调银行流水汕头对公账户流水查询台州入职工资流水图片株洲房贷银行流水 查询淮安打个人银行流水洛阳代做企业对公流水沧州对公账户流水价格开封制作企业流水打印深圳流水代办襄阳开企业银行流水邢台自存银行流水费用唐山查询工资流水遵义工资流水app截图代办常德入职流水样本东莞工资流水账单打印嘉兴自存银行流水报价贵阳银行流水电子版代做太原离职证明制作香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化