各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
时间复杂度是学习算法的基石,今天我们来聊聊为什么要引入时间复杂度,什么是时间复杂度以及如何去算一个算法的时间复杂度
一、刻画算法的运行时间
某日,慧能叫来了一尘打算给他补习补习一下基础知识,只见克写了一段非常简单的代码
一尘看老师有点生气,开始虚心请教了
为了方便讨论,这里我们把每一条语句的执行时间都看做是一样的,记为一个时间单元
① 蓝色框的两条语句,花费两个时间单元
②黑色框的一条语句,花费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万粉丝作者,专业于写这些底层知识,提升我们的内功,帅地期待你的关注,和我一起学习,点击了解我四年大学学 习之路 转载说明:未获得授权,禁止转载
各位学弟学妹,别再看教材了,时间复杂度看这篇就好了相关推荐
- 写给准备参加秋招的学弟学妹们~一定要来看哦~
一. 写在前面 这两天找工作不易,由衷感慨,很多书都没早看,所以希望学弟学妹们能多看点书,特别是我们qtech的ACMer们,我们这种acm弱校的ACMer走出来的,acm水平都不行,如果再像我当年那 ...
- 一个08届毕业的学长写给即将毕业的09届的学弟学妹们
写给即将毕业的09届的学弟学妹们 作为一个12年毕业,在社会游荡半年有余的底层劳动人民,毕竟多少有点经验,仅以此警醒初入社会的你们. 1.不要轻易把自己的"初次"给了企业,要知道, ...
- 对于刚毕业的学弟学妹对即将要就业产生迷茫,下面我来为大家揭晓该如何选择!
对于学弟学妹的疑问,我心里也很清楚,心理充满了害怕,这工作以后能不能让我发家致富啊,会不会和我的专业对口啊,有没有上升前景啊,工资太低了吧,会不会包吃住啊等等一系列问题,其实作为任何事情我们不能太过与 ...
- 程序员的奋斗史(四十六)——大学断代史(十)——给学弟学妹们的忠告——终结篇
文/温国兵 「写在前面」 大学断代史终于要完结了,就像一条再长的路总有终点一样.该系列文章前前后后写了一两个月,也该收尾了,至于收尾的文章,想了想,决定写写自己对学弟学妹的忠告.本篇文章以话题的形式呈 ...
- 奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些并发编程知识是你必须要掌握的!完整学习路线!!(建议收藏)
大家好,我是冰河~~ 今天给大家带来一篇完整的并发编程学习路线,这应该是全网最全的并发编程学习路线了吧,希望能够为各位小伙伴们带来实质性的帮助. 如果这篇文章对大家有点帮助,小伙伴们点赞,收藏,评论, ...
- 写给学弟学妹的一些话
很是荣幸,前两天的实习感悟写完后被德喜看到,他说你为什么不写一篇大学的感悟呢,顺带给学弟学妹们分享分享经验干货什么的,以及之前之后也有幸和一些学弟们聊过关于大学生活的方向,刚好又是周末,闲来无事那就写 ...
- 学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
CSDN 的学弟学妹们,大家好,我是二哥呀! 今天不聊别的,给大家聊一下我认为学编程当中最重要的三点,尤其是针对新人来说. 热爱 努力 解决问题的能力 先说热爱. 有的同学是一开始就热爱,所以选专业的 ...
- 【高考志愿填报-让你领先在起跑线上】学长给学弟学妹七点建议,字字珠玑!
文章大纲 一:前言 二: 选择什么学校和选择什么专业 (一): 选择学校需要前需要考虑的事情 (二): 辅助你做决策的工具 (三): 选择什么专业 三: 计算机专业如何 (一) 什么是计算机类专业: ...
- 写给湘大计算机相关专业的学弟学妹们
写给湘大计算机 写给湘大计算机相关专业的学弟学妹们 不管未来怎么样,但是作为一个大学四年真正奋斗过的学长,我觉得我比其他人更有资格写这样的一篇文章.希望能给湘大的学弟学妹们一些正能量. 奋斗篇 首先写 ...
- 献给 想要学习做网站的学弟学妹们
大学毕业一年多了,从什么都不懂到现在能很好的完成一个网站项目,其中的辛苦只有自己懂得. 为了让学弟学妹们少走一些弯路,觉得应该要写点东西留给你们.让你们的路顺畅一些. 其实做网站,说白了就是网页编程, ...
最新文章
- python求三角形面积步骤_python算三角形面积
- js 两行之间的设置间距_厂房仓库的防火间距考点汇总
- 为什么消息队列不实现精准一次(exactly once)?
- 剑指offer 菲波那切数列
- springcloud hystrix入门简介(一)
- 一篇文章带你了解Python运算符重载
- jwt token注销_退出登录时怎样实现JWT Token失效?
- Beyond Saliency map
- Sphinx安装与基本设置
- 怎样对计算机窗口进行截图,Windows10:如何对计算机屏幕上的内容进行屏幕截图...
- Python-编码格式
- 鸿蒙系统全屋定制,华为推出鸿蒙 1+2+N 全屋智能、智慧屏 V 系列,还有一款陪伴机器人小艺精灵...
- No.3PPT风格及搭配
- CNN英文垃圾邮件分类(数据预处理)
- 原来勾股定理可以这样证!
- HTML5的绘图步骤——示例绘制火柴人
- c++实现汉诺塔(图文并茂)
- 2019TFE计算机科学排名,2019TFE Times 硕士专业排名
- 医院室内定位导航,便捷、低成本智慧医院室内地图应用解决方案
- 如何搭建SPA-单页面应用
热门文章
- MT7601U-STA驱动程序编译步骤
- 【无人驾驶视觉系列之】3D障碍物检测SMOKE算法调试分析
- 计算机网络——学习资料(更新.......)
- 宝哥面试题分享(16):Git面试题:git常用命令、如何解决版本冲突、git和svn的区别
- H3C MAGIC R300千兆双频无线路由拆机
- java计算机毕业设计树木交易平台源码+系统+数据库+lw文档+mybatis+运行部署
- 杰理之底噪处理2【篇】
- 基于php的公司企业网站设计
- 读研三年后工作没了 2023计算机考研是不是没用了
- 狄拉克δ函数(Dirac Delta function)