当前位置:网站首页>各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
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万粉丝作者,专业于写这些底层知识,提升我们的内功,期待你的关注,和我一起学习,点击了解我四年大学学 习之路转载说明:未获得授权,禁止转载
边栏推荐
- After 17 years, Liu Yifei became popular again: ordinary people don't want to be eliminated, but they also need to understand this
- 基础版现在SQL分析查询不能用了吗?
- 对领域驱动设计DDD理解
- 小白操作Win10扩充C盘(把D盘内存分给C盘)亲测多次有效
- Quickly play ci/cd graphical choreography
- Promouvoir l'adaptation compatible et permettre le développement collaboratif du Service Express adaptatif gbase en mai
- 社区文章|MOSN 构建 Subset 优化思路分享
- The 12 SQL optimization schemes summarized by professional "brick moving" old drivers are very practical!
- CVE-2022-0847(提权内核漏洞)
- uni开发微信小程序自定义相机自动检测(人像+身份证)
猜你喜欢

FreeRTOS task priority and interrupt priority

Common operations in Visual Studio development

阿里云中间件的开源往事

得物App数据模拟平台的探索和实践

What does password security mean? What are the password security standard clauses in the ISO 2.0 policy?

Simulation Keil et vspd

极致效率,云原生数据库TDSQL-C安身立命的根本

2022年失业的人多吗?今年是不是特别难找工作?

建议自查!MySQL驱动Bug引发的事务不回滚问题,也许你正面临该风险!

Countdown to the conference - Amazon cloud technology innovation conference invites you to build a new AI engine!
随机推荐
C# 实现插入排序
那些没考上大学的人,后来过的怎样
晒晒我这两年的私活单,业余时间月入6k,有份副业也太香啦
ORB_VI思想框架
迷宫问题(BFS记录路径)
社区文章|MOSN 构建 Subset 优化思路分享
数字人民币可以买理财产品了!建行APP在试点地区上线服务专区,实测体验如何?
Exploration and practice of dewu app data simulation platform
C # implements insertion sorting
Promouvoir l'adaptation compatible et permettre le développement collaboratif du Service Express adaptatif gbase en mai
向量2(友元及拷贝构造)
得物App数据模拟平台的探索和实践
多年亿级流量下的高并发经验总结,都毫无保留地写在了这本书中
Verilog使用inout信号的方法
宏源期货开户安全么?宏源期货公司可以降低手续费?
How MySQL modifies a field to not null
Yilian technology rushes to Shenzhen Stock Exchange: annual revenue of RMB 1.4 billion, 65% of which comes from Ningde times
FreeRTOS task priority and interrupt priority
Database connection pool: stress testing
洛谷P2466 [SDOI2008] Sue 的小球 题解