当前位置:网站首页>各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
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万粉丝作者,专业于写这些底层知识,提升我们的内功,期待你的关注,和我一起学习,点击了解我四年大学学 习之路转载说明:未获得授权,禁止转载
边栏推荐
- 又可以这样搞nlp(分类)
- Hello, big guys. Error reporting when using MySQL CDC for the first time
- "Software defines the world, open source builds the future" 2022 open atom global open source summit will open at the end of July
- 迷宫问题(BFS记录路径)
- FPGA collects DHT11 temperature and humidity
- Scala语言学习-06-传名参数、传值参数、传函数参数的区别
- Keil simulation and VSPD
- mysql如何将字段修改为not null
- C# 实现插入排序
- 多年亿级流量下的高并发经验总结,都毫无保留地写在了这本书中
猜你喜欢

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

Reconstruction practice of complex C-end project of acquisition technology

The IPO of Tian'an technology was terminated: Fosun and Jiuding were shareholders who planned to raise 350million yuan

UK considers listing arm in London based on national security

GBASE现身说 “库” 北京金融科技产业联盟创新应用专委会专题培训

Advanced thinking on application scenarios of standardization, maximum normalization and mean normalization

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!

再次认识 WebAssembly

After 100 days, Xiaoyu built a robot communication community!! Now invite moderators!

Promoting compatibility and adaptation, enabling coordinated development of gbase may adaptation Express
随机推荐
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!
Found several packages [runtime, main] in ‘/usr/local/Cellar/go/1.18/libexec/src/runtime;
晒晒我这两年的私活单,业余时间月入6k,有份副业也太香啦
Simulation Keil et vspd
How MySQL modifies the storage engine to InnoDB
NF RESNET: network signal analysis worth reading after removing BN normalization | ICLR 2021
小程序开发----自定义有效期缓存
The IPO of Tian'an technology was terminated: Fosun and Jiuding were shareholders who planned to raise 350million yuan
"Forget to learn again" shell process control - 38. Introduction to while loop and until loop
三菱机械臂demo程序
向量1(类和对象)
DevSecOps: CI/CD 流水线安全的最佳实践
架构师之路,从「存储选型」起步
Rosbag使用命令
对领域驱动设计DDD理解
Driving the efficient growth of the manufacturing industry, UFIDA u9 cloud is constantly improving the password behind it
Verilog使用inout信号的方法
米哈游六月社招火热开启!500+岗位,超多HC,就在这个夏天(附内推方式)
2022年失业的人多吗?今年是不是特别难找工作?
曾经,我同时兼职5份工作,只为给女友买个新款耳环......