首页 > 作文

算法与数据结构系列 ( 一 ) – 算法的级别区分理解

更新时间:2023-04-08 09:40:55 阅读: 评论:0

算法的级别

o(1)、o(n)、o(n^2)、o(log n)、o(n log n)这些都是算法时间空间复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。o 后面的括号中有一个函数,指明某个算法的耗时 / 耗空间与数据增长量之间的关系。其中的 n 代表输入数据的量

o (1) 的理解

o(1)就是最低的时空复杂度了,也就是耗时 / 耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时 / 耗空间都不变。无论数据规模多大,都可以在一次计算后找到目标(不考虑冲突的话)举个栗子比如你将家里的衣服很多,装了十个箱子,分别给他们打上标记110。有一天,你突然想穿10号箱子的一件衣服。你就可以迅速打开箱子把衣服拿出来,而且速度非常快。

o (n) 的理解

时间复杂度为 o(n) ,就代表数据量增大几倍,耗时也增大几倍。很多常见的遍历算法,要找到一个数组里面最大的一个数,你要把整个数组都 for 一次,操作次数为 n,那么算法复杂度是 o(n)又举个了栗子有一天你突然很想穿某一件衣服,但是忘记衣服放在那个箱子里面了。你就需要从 10 个箱子里面挨个翻出来,并且找到你想要穿的衣服。

o (n^2) 的理解

时间复杂度 o(n^2),就代表数据量增大 n 倍时,耗时增大 n 的平方倍,这是比线性更高的时间复杂度。比如冒泡排序,就是典型的 o(n^2) 的算法,对 n 个数排序,需要扫前鼻韵母和后鼻韵母表描 n×n 次。用冒泡排序排一个数组,对于 n 个变量的数组,需要交换变量位置次,那么算法复杂度就是 o().双举个了栗子因为你看了我的博客,觉得衣服乱放有点不好,所以你把衣服,裤子,分别放在特定的箱子里面。当你想穿某件衣服的时候,只需要找到那个存放衣服的箱子,并且从箱子里面的衣服里面找到你想穿的哪一件就好了

o (log n) 的理解

当数据增大 n 倍时,耗时增大 log 三年级科学教学计划n 倍(这里的 log 是以 2 为底的,当数据增大 256 倍时,耗时只增大 8 倍,是比线性还要低的时间复杂度)。二分查找就是 o(log n) 的算法,每找一次排除一半的可能,256 个数据中查找只要找 8 次就可以找到目标。这种查找的方法的复杂度就是 o(log n)叒举个了栗子某一天,你忘记了钱包不知道放哪里了(在 6 号箱子),但是被你收入箱子里面了。但是箱子太多,你找了朋友帮忙找。然后你安排你的朋友一人负责找一个箱子,并且他们找的时候,还会问你是不是这个,直到 6 号朋友找到了钱包

o (n log n) 的理解

同理,o(n log n)就是名言名语n乘以log n,当数据增大256倍时,耗时增大2visit的现在分词56 * 8 = 2048倍。而且这个复杂度高于线性低于平方

本系列文章,基本写的是 o (n^2) 级别的。

众所周知,o(n^2) 的排序算法是比较基础的 (很多时候都用不上) ,那我们为什么还要去学习 o(n^2) 这种级别的算法呢?

可能在我看来,无非就是关于气象的谚语以下几点。

基础 – 大家也不要小瞧基础算法,很多基础算法的思路是非常好的。简单 – 编码简单,易于实现。简单的排序算法思想会衍生出复杂的排序算法有效 – 在某些特殊情形下,o(n^2) 会比 o(log n) 或者 o(n log n),更加简单有效

更多学习内容请访问:

腾讯t3-t4标准精品php架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)

本文发布于:2023-04-08 09:40:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/c657ec90ea9b403139ca1e42eb5d2ed5.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:算法与数据结构系列 ( 一 ) – 算法的级别区分理解.doc

本文 PDF 下载地址:算法与数据结构系列 ( 一 ) – 算法的级别区分理解.pdf

下一篇:返回列表
标签:复杂度   算法   箱子   衣服
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图