附上借鉴的地址:https://blog.csdn.net/lkp1603645756/article/details/85013126

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

O(1)解析
O(1) 是最低的时间复杂度,就是说耗时,耗空间与数据大小无关,无论数据增大多少倍,耗时/耗空间 都不变,哈希算法就是O(1) 时间复杂度,无论数据规模多大,都可以在一次计算后找到目标地址。(在不考虑哈希冲突的情况下),冲突的话,会重新做一次哈希运算,指向其他的内存区域。

通俗易懂的例子

什么是O(1)呢,就比如你是一个酒店的管理员,你负责管理酒店的钥匙,你很聪明,你把酒店的100把钥匙放在了100个格子里面存着,并且把格子从1~100进行了编号,有一天有客人来了,酒店老板说,给我拿10号房间的钥匙给我,你迅速从10号格子里面拿出钥匙给老板,速度非常快,这时候你就是一个电脑了,老板跟你说拿几号房房间的钥匙,你只需要看一眼就能知道钥匙在哪里。
O(N)解析:
比如时间复杂度为O(N),就代表数据量增大几倍,耗时也增大几倍。

比如常见的遍历算法。

要找到一个数组里面最大的一个数,你要把n个变量都扫描一遍,操作次数为n,那么算法复杂度是O(n).
通俗易懂的例子

突然,有一天,你的老板给你说,你用100个箱子存100把钥匙,太浪费空间了,你能补能把钥匙上编号一下,然后把钥匙要用绳子穿起来,这样我们可以把这个放箱子的地方再装修一个房间出来。你想了一下,是啊,现在房价这么贵,这样能多赚点钱。所以你就不能通过上面的方法来找到钥匙了,老板跟你说,给我拿45号房间的钥匙出来,你就需要从100个钥匙里面挨个找45个房间的钥匙。

O(n^2)解析
O(n2)的写法为:O(n2)
比如时间复杂度O(n^2),就代表数据量增大n倍时,耗时增大n的平方倍,这是比线性更高的时间复杂度。比如冒泡排序,这就是典型的O(n ^2)的算法,对n个数排序,需扫描n*n次。

用冒泡排序排一个数组,对于n个变量的数组,需要交换变量位置n2次,那么算法复杂度就是O(n2).
通俗易懂的例子

随着经济发展越来越好,你的老板把酒店扩大了,有100层每一层有100个房间,当然,你还是你,不过你因为关注我的博客,知道怎么把钥匙排序更好了,你把每一层的钥匙穿在一起,然后一共就有100个用绳子穿起来的钥匙串。然后老板叫你找钥匙的时候,你先要找到楼层的编号,再对应找到房间的编号,所以大概对应的是这样的代码。
O(log n)解析:
再比如O(log n),当数据增大时,耗时增大log n倍(这里的log是以2为底的,比如,当数据增大256倍时,耗时只增大8倍,是比线性还要低的时间复杂度)。二分查找就是O(log n)的算法,每找一次排除一半可能,256个数据只要查找8次就可以找到目标。
通俗易懂的例子

这个就像是有一百把钥匙,你突然觉得,我从头找是不是太慢了,我从中间找,比如我要找到23号的房间钥匙,我从中间切开,找到50编号的位置,然后23在150里面,我再把从中间切开变成25,然后23在125之间,我再切开变成12.5,然后23在12.5~25之间,依次找下去,直到找到钥匙。这种查找钥匙的方法的复杂度就是O(log^n)
O(n log n)解析
O(n log n)同理,就是n乘以log n,当数据增大256倍时,耗时增大256*8 =2040倍。这个复杂度高于线性低于平方。归并排序就是O(n log n)的时间复杂度。

不管做什么,只要坚持下去就会看到不一样!
加油! 不愿意平庸的伙伴!一起进步

时空复杂度(时间复杂度/空间复杂度)O(1)、O(n)、O(n^2)、O(log n)、O(n log n)是什么意思,借鉴 然后自己借鉴出来相关推荐

  1. 时空复杂度(时间复杂度/空间复杂度)O(1)、O(n)、O(n^2)、O(log n)、O(n log n)是什么意思

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

  2. 时空复杂度(时间复杂度/空间复杂度)O(1)、O(n)、O(n^2)、O(log n)、O(n log n)是什么意思?...

    大O符号是算法复杂度的相对表示.它描述了时空复杂度. 大O符号是我在大学里学过的东西之一,我了解过这个算法的概念.我知道的不算多,可以回答一些基本的问题,仅此而已.从大学毕业以后,我对这个算法的了解基 ...

  3. PHP复杂度,php 算法复杂度 时间复杂度 空间复杂度

    算法复杂度分为时间复杂度和空间复杂度. 其作用: 时间复杂度是指执行算法所需要的计算工作量: 而空间复杂度是指执行这个算法所需要的内存空间. (算法的复杂性体现在运行该算法时的计算机所需资源的多少上, ...

  4. 交换两个变量ab的值PHP,由[交换两个变量的值问题]理解程序的时空复杂度

    由一个编程经典问题,交换两个变量的值入手,理解程序的时空复杂度(以下均使用PHP代码演示问题的解决方法)解决问题的方法一:1.方法文字描述:使用一个中间变量temp,实现两个变量值的互换2.实现的具体 ...

  5. 时空复杂度定义与分析

    时空复杂度定义与分析 时空复杂度 时间复杂度 基本认识 举个例子 空间复杂度 基本认识 单位换算 常见数据类型 一些例子 常数阶 线性阶 对数阶 循环嵌套 立方阶 练练手吧! NOIP2011 铺地毯 ...

  6. 数据结构与算法分析c++第四版_数据结构与算法 - 时空复杂度分析

    这周主要总结了时间复杂度的学习,跟小伙伴们分享下,欢迎指正. 一.为何需要分析算法复杂度 挺多同学本科都学习过数据结构和算法这门课,但是有没有想过这门课到底是解决什么问题?科学家设计这些数据结构和算法 ...

  7. 【数据结构初阶】八大排序算法+时空复杂度

    学会控制自己是人生的必修课 文章目录 一.插入排序 1.直接插入排序 2.希尔排序 二.选择排序 1.直接选择排序 2.堆排序(已经建好堆的基础之上) 三.交换排序(Swap) 1.冒泡排序(大学牲最 ...

  8. 数据结构<1>时空复杂度详解

    文章目录 什么是时间复杂度和空间复杂度 前言(算法效率) 时间复杂度的计算 空间复杂度的计算 oj练习 什么是时间复杂度和空间复杂度 前言(算法效率) 算法效率分析分为两种:第一种是时间效率,第二种是 ...

  9. 时空复杂度之珠心算测验

    时空复杂度之珠心算测验 问题 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练, 既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及. 某学校的珠心算老师采 ...

最新文章

  1. IDEA下spring boot项目打包war包部署外部tomcat问题
  2. 论坛高级签名_2020行走的酒窖首届中国(华北)定制白酒高峰论坛在天津盘山举行...
  3. 如何在Linux kernel Makefile中添加宏定义
  4. C++基础系列五:自增自减操作符、箭头操作符、new和delete操作符
  5. PostgreSQL 10 高可用 本地SSD盘 版本发布
  6. 联想童夫尧:细分市场将是PC未来新增长点
  7. Microsoft .Net Remoting系列专题之二 Marshal、Disconnect与生命周期以及跟踪服务
  8. mysql.5.7 declare_MySQL-5.7 游标及DECLARE
  9. ib网卡无法启动,需要修改为以太网模式
  10. 分享一个边看视频就能边练口语的学习网站,超实用,不仅仅能学英语
  11. android 向上飘的字符,Android如何自定义View实现抖音飘动红心效果
  12. Python自动化 | 通过键盘控制鼠标来玩赛尔号
  13. 您好!欢迎关注异贝!异贝是中国8000万中小微企业忠实的朋友,与您一起成长。异贝商学院今天与您分享:健身行业异贝引客、锁客方案设计!
  14. Visio中旋转文本框与箭头平行
  15. 模具设计:模具做的好,镶件也要镶得好!
  16. 【跨域】一篇文章彻底解决跨域设置cookie问题!
  17. GWAS数据分析专题
  18. 211计算机考研难度小,考研难度小比较好考的211名校,一共有17所,报录比也不高~...
  19. LOB类型数据的MOVE
  20. 问!—— 斜杆/ 和 反斜杠\ 的区别

热门文章

  1. vue父组件变量传递子组件_Vue2.x中的父组件数据传递至子组件
  2. 杀鸡儆猴!苹果撤销Facebook的iOS企业证书
  3. myeclipse汉化及其相关配置设置(转)
  4. Java基础知识梳理(五)从源码了解字符串
  5. requestAnimationFrame用法
  6. while 中 break 与 continue 的区别
  7. 201612-2工资计算
  8. 虚拟化平台cloudstack(7)——新版本的调试
  9. 吴恩达深度学习作业L1W2:ValueError: cannot reshape array of size 12288 into shape (50,1)
  10. mysql 分布式锁_【分布式锁的演化】分布式锁居然还能用MySQL?