当前位置:网站首页>各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
2022-06-22 14:34:00 【m0_60721514】
时间复杂度是学习算法的基石,今天我们来聊聊为什么要引入时间复杂度,什么是时间复杂度以及如何去算一个算法的时间复杂度
一、刻画算法的运行时间
某日,慧能叫来了一尘打算给他补习补习一下基础知识,只见克写了一段非常简单的代码








一尘看老师有点生气,开始虚心请教了



为了方便讨论,这里我们把每一条语句的执行时间都看做是一样的,记为一个时间单元



① 蓝色框的两条语句,花费两个时间单元
②黑色框的一条语句,花费n+1个时间单元
③红色框的两条语句,花费2*n个时间单元

这不是数学吗,一尘心里想到

其中的n被我们称为问题的规模,其实就是你处理问题的大小
慧能顺手画了这个函数的图

本文主要讨论问题规模和运行时间的关系,假定不同输入和运行时间基本无关





二、时间复杂度

比如说:T(n)=3n+3, 当n非常大的时候常数3和n的系数3对函数结果的影响就很小了


比如:
T(n)=n+1 忽略常数项 T(n)~n
T(n)=n+n^2 忽略低阶项 T(n)~n^2
T(n)=3n 忽略最高阶的系数 T(n)~n





还好不用掌握那头疼的数学,一尘心中想到

一尘把话题又拉了回来



更准确地说O代表了运行时间函数的一个渐进上界,即T(n)在数量级上小于等于f(n)

三、时间复杂度的计算

一、得出运行时间的函数 二、对函数进行简化
①用常数1来取代运行时间中所有加法常数
②修改后的函数中,只保留最高阶项 ③如果最高阶项存在且不是1,则忽略这个项的系数



O(1)也被称为常数阶





一尘随手写了一段嵌套循环的代码





接着,慧能又写了一段时间复杂度为对数的代码



一向数学不太好的一尘此时有点懵







总结
算法的学习,第一步就是得先知道啥是时间复杂度,啥是空间复杂度,其实你懂了时间复杂度,也就懂了空间复杂度,建议各位还在校的小伙伴,一定要把数据结构和算法这门课学好。
无论是面试还是提升自己的内容,算法学习基本少不了,我这里给大家推荐一份某 BAT 大佬总结的 Leetcode 刷题笔记:BAT 大佬分类总结的 Leetcode 刷题模版,助你搞定 90% 的面试
另外,也把排序算法系列文章用漫画写好了,这里直接贴出链接吧,你们负责收藏就好了,嘿嘿。不过这里只给出了 7 种必须掌握的排序算法,像桶排序,基数排序这些,了解即可,后期也会写出来滴。
当然,也欢迎大家来的个人网站玩耍:https://www.iamshuaidi.com,从 0 到 1 总结了的个人学习。
作者简洁
作者:大家好,我是,从大学、自学一路走来,深知算法,计算机基础知识的重要性,公众号「玩编程」10万粉丝作者,专业于写这些底层知识,提升我们的内功,期待你的关注,和我一起学习,点击了解我四年大学学 习之路转载说明:未获得授权,禁止转载
边栏推荐
- Advanced thinking on application scenarios of standardization, maximum normalization and mean normalization
- mysql如何修改存储引擎为innodb
- 【一起上水硕系列】Day Three - video
- After 100 days, Xiaoyu built a robot communication community!! Now invite moderators!
- New hybrid architecture iformer! Flexible migration of convolution and maximum pooling to transformer
- 新版负载均衡WebClient CRUD
- 接了个私活项目,一下赚了15250,还有必要做主业吗?
- NF RESNET: network signal analysis worth reading after removing BN normalization | ICLR 2021
- 向量6(继承)
- Ask if you want to get the start of sqlserver_ Is there a good way for LSN?
猜你喜欢

【VTK】模型旋转平移

(pytorch advanced path 2) word embedding and position embedding

Wallys/DR7915-wifi6-MT7915-MT7975-2T2R-support-OpenWRT-802.11AX-supporting-MiniPCIe

加密市场进入寒冬,是“天灾”还是“人祸”?

Is the encryption market a "natural disaster" or a "man-made disaster" in the cold winter?

(pytorch进阶之路二)word embedding 和 position embedding

百行代码实现基于Redis的可靠延迟队列

Driving the efficient growth of the manufacturing industry, UFIDA u9 cloud is constantly improving the password behind it

阿里云中间件的开源往事

Discourse 的信任级别
随机推荐
After 17 years, Liu Yifei became popular again: ordinary people don't want to be eliminated, but they also need to understand this
壹连科技冲刺深交所:年营收14亿 65%收入来自宁德时代
2022年失业的人多吗?今年是不是特别难找工作?
Ros2 pre basic tutorial | Xiaoyu teaches you how to use cmake dependency lookup process
Yilian technology rushes to Shenzhen Stock Exchange: annual revenue of RMB 1.4 billion, 65% of which comes from Ningde times
加密市场进入寒冬,是“天灾”还是“人祸”?
多年亿级流量下的高并发经验总结,都毫无保留地写在了这本书中
New hybrid architecture iformer! Flexible migration of convolution and maximum pooling to transformer
数字人民币可以买理财产品了!建行APP在试点地区上线服务专区,实测体验如何?
时隔17年,刘亦菲再次刷屏式爆红:普通人不想被淘汰,也要懂得这件事
【VTK】模型旋转平移
I rely on the sideline to buy a house in full one year: the industry you despise will make a lot of money in the next ten years!
希尔排序的简单理解
Scala语言学习-04-函数作为参数传入函数-函数作为返回值
Database connection pool: stress testing
Recommend several AI Intelligent Platforms
『忘了再学』Shell流程控制 — 38、while循环和until循环介绍
Ultimate efficiency is the foundation for the cloud native database tdsql-c to settle down
Common operations in Visual Studio development
The summary of high concurrency experience under the billion level traffic for many years is written in this book without reservation