时间复杂度是学习算法的基石,今天我们来聊聊为什么要引入时间复杂度,什么是时间复杂度以及如何去算一个算法的时间复杂度

一、刻画算法的运行时间

某日,慧能叫来了一尘打算给他补习补习一下基础知识,只见克写了一段非常简单的代码

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

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

① 蓝色框的两条语句,花费两个时间单元

②黑色框的一条语句,花费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万粉丝作者,专业于写这些底层知识,提升我们的内功,帅地期待你的关注,和我一起学习,点击了解我四年大学学 习之路 转载说明:未获得授权,禁止转载

各位学弟学妹,别再看教材了,时间复杂度看这篇就好了相关推荐

  1. 写给准备参加秋招的学弟学妹们~一定要来看哦~

    一. 写在前面 这两天找工作不易,由衷感慨,很多书都没早看,所以希望学弟学妹们能多看点书,特别是我们qtech的ACMer们,我们这种acm弱校的ACMer走出来的,acm水平都不行,如果再像我当年那 ...

  2. 一个08届毕业的学长写给即将毕业的09届的学弟学妹们

    写给即将毕业的09届的学弟学妹们 作为一个12年毕业,在社会游荡半年有余的底层劳动人民,毕竟多少有点经验,仅以此警醒初入社会的你们. 1.不要轻易把自己的"初次"给了企业,要知道, ...

  3. 对于刚毕业的学弟学妹对即将要就业产生迷茫,下面我来为大家揭晓该如何选择!

    对于学弟学妹的疑问,我心里也很清楚,心理充满了害怕,这工作以后能不能让我发家致富啊,会不会和我的专业对口啊,有没有上升前景啊,工资太低了吧,会不会包吃住啊等等一系列问题,其实作为任何事情我们不能太过与 ...

  4. 程序员的奋斗史(四十六)——大学断代史(十)——给学弟学妹们的忠告——终结篇

    文/温国兵 「写在前面」 大学断代史终于要完结了,就像一条再长的路总有终点一样.该系列文章前前后后写了一两个月,也该收尾了,至于收尾的文章,想了想,决定写写自己对学弟学妹的忠告.本篇文章以话题的形式呈 ...

  5. 奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些并发编程知识是你必须要掌握的!完整学习路线!!(建议收藏)

    大家好,我是冰河~~ 今天给大家带来一篇完整的并发编程学习路线,这应该是全网最全的并发编程学习路线了吧,希望能够为各位小伙伴们带来实质性的帮助. 如果这篇文章对大家有点帮助,小伙伴们点赞,收藏,评论, ...

  6. 写给学弟学妹的一些话

    很是荣幸,前两天的实习感悟写完后被德喜看到,他说你为什么不写一篇大学的感悟呢,顺带给学弟学妹们分享分享经验干货什么的,以及之前之后也有幸和一些学弟们聊过关于大学生活的方向,刚好又是周末,闲来无事那就写 ...

  7. 学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!

    CSDN 的学弟学妹们,大家好,我是二哥呀! 今天不聊别的,给大家聊一下我认为学编程当中最重要的三点,尤其是针对新人来说. 热爱 努力 解决问题的能力 先说热爱. 有的同学是一开始就热爱,所以选专业的 ...

  8. 【高考志愿填报-让你领先在起跑线上】学长给学弟学妹七点建议,字字珠玑!

    文章大纲 一:前言 二: 选择什么学校和选择什么专业 (一): 选择学校需要前需要考虑的事情 (二): 辅助你做决策的工具 (三): 选择什么专业 三: 计算机专业如何 (一) 什么是计算机类专业: ...

  9. 写给湘大计算机相关专业的学弟学妹们

    写给湘大计算机 写给湘大计算机相关专业的学弟学妹们 不管未来怎么样,但是作为一个大学四年真正奋斗过的学长,我觉得我比其他人更有资格写这样的一篇文章.希望能给湘大的学弟学妹们一些正能量. 奋斗篇 首先写 ...

  10. 献给 想要学习做网站的学弟学妹们

    大学毕业一年多了,从什么都不懂到现在能很好的完成一个网站项目,其中的辛苦只有自己懂得. 为了让学弟学妹们少走一些弯路,觉得应该要写点东西留给你们.让你们的路顺畅一些. 其实做网站,说白了就是网页编程, ...

最新文章

  1. python求三角形面积步骤_python算三角形面积
  2. js 两行之间的设置间距_厂房仓库的防火间距考点汇总
  3. 为什么消息队列不实现精准一次(exactly once)?
  4. 剑指offer 菲波那切数列
  5. springcloud hystrix入门简介(一)
  6. 一篇文章带你了解Python运算符重载
  7. jwt token注销_退出登录时怎样实现JWT Token失效?
  8. Beyond Saliency map
  9. Sphinx安装与基本设置
  10. 怎样对计算机窗口进行截图,Windows10:如何对计算机屏幕上的内容进行屏幕截图...
  11. Python-编码格式
  12. 鸿蒙系统全屋定制,华为推出鸿蒙 1+2+N 全屋智能、智慧屏 V 系列,还有一款陪伴机器人小艺精灵...
  13. No.3PPT风格及搭配
  14. CNN英文垃圾邮件分类(数据预处理)
  15. 原来勾股定理可以这样证!
  16. HTML5的绘图步骤——示例绘制火柴人
  17. c++实现汉诺塔(图文并茂)
  18. 2019TFE计算机科学排名,2019TFE Times 硕士专业排名
  19. 医院室内定位导航,便捷、低成本智慧医院室内地图应用解决方案
  20. 如何搭建SPA-单页面应用

热门文章

  1. MT7601U-STA驱动程序编译步骤
  2. 【无人驾驶视觉系列之】3D障碍物检测SMOKE算法调试分析
  3. 计算机网络——学习资料(更新.......)
  4. 宝哥面试题分享(16):Git面试题:git常用命令、如何解决版本冲突、git和svn的区别
  5. H3C MAGIC R300千兆双频无线路由拆机
  6. java计算机毕业设计树木交易平台源码+系统+数据库+lw文档+mybatis+运行部署
  7. 杰理之底噪处理2【篇】
  8. 基于php的公司企业网站设计
  9. 读研三年后工作没了 2023计算机考研是不是没用了
  10. 狄拉克δ函数(Dirac Delta function)