算法图解学习2 大O表示

news2024/10/5 9:12:15

random recording 随心记录
What seems to us as bitter trials are often blessings in disguise.
看起来对我们痛苦的试炼,常常是伪装起来的好运。

大O表示法是一种特殊的表示法,指出了算法的速度有多快。

背景引入

Bob要为NASA编写一个查找算法,这个算法在火箭即将登陆月球前开始执行,帮助计算着陆地点。Bob使用包含10亿个元素的列表运行二分查找,运行时间为30毫秒(log21000000000大约为30),简单查找需要10亿毫秒,相当于11天。
在这里插入图片描述

二分查找和简单查找的运行时间的增速不同,仅知道算法需要多长时间才能运行完毕还不够,还需知道运行时间如何随列表增长而增加,引出了大O表示。

理解不同的大O运行时间

问题:假设你要画一个网格,它包含16个格子。
在这里插入图片描述

算法1

以每次画一个的方式画16个格子,以每次画一个的方式画16个格子,运行时间为O(n),对比简单查找。
在这里插入图片描述

算法2

将纸折起来,运行时间为O(log n),对比二分查找。
在这里插入图片描述

一些常见的大O运行时间

大O表示法指出了最糟情况下的运行时间

  • O(log n),也叫对数时间,这样的算法包括二分查找。
  • O(n),也叫线性时间,这样的算法包括简单查找。
  • O(n * log n),快速排序——一种速度较快的排序算法。
  • O(n2),选择排序——一种速度较慢的排序算法。
  • O(n! ),旅行商问题的解决方案——一种非常慢的算法。

绘制表格问题在这里插入图片描述

总结

  • 算法的速度指的并非时间,而是操作数的增速。
  • 谈论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加。
  • 算法的运行时间用大O表示法表示。
  • O(log n)比O(n)快,当需要搜索的元素越多时,前者比后者快得越多。

扩展

旅行商问题

一位旅行商要前往这5个城市,同时要确保旅程最短。为此,可考虑前往这些城市的各种可能顺序。对于每种顺序,他都计算总旅程,再挑选出旅程最短的路线。5个城市有120种不同的排列方式。因此,在涉及5个城市时,解决这个问题需要执行120次操作。涉及6个城市时,需要执行720次操作(有720种不同的排列方式)。推而广之,涉及n个城市时,需要执行n!(n的阶乘)次操作才能计算出结果。因此运行时间为O(n! ),即阶乘时间。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MobaXterm连接报错Network error: Connection timed out

今天打开MobaXterm远程连接我VMware虚拟机的时候出现以下界面&#xff0c;问题详情如下&#xff1a;Network error: Connection timed out Session stopped - Press <return> to exit tab - Press R to restart session - Press S to save terminal output t…

RabbitMQ介绍

介绍 RabbitMQ是 一个由erlang语言编写的、开源的&#xff0c;基于AMQP协议实现的消息队列&#xff0c;具有MQ应用解耦、流量削峰、异步的特点 官网地址 https://www.rabbitmq.com/ 功能特点 支持顺序消息&#xff0c;保证消息送达消费端的前后顺序 支持消息补偿&#xff0…

计算机是什么

文章目录计算机是什么计算机类别计算机优缺点计算机应用实例计算机是什么 计算机&#xff08;英文“computer”&#xff09;一词源自拉丁文中的“computare”&#xff0c;本意为计算。 发展至今&#xff0c;计算机专门代指“可编程”的电子设备。所谓“可编程”&#xff0c;…

图像超分辨率模型:Real-ESRGAN | 论文阅读+实战记录

前言 最近需要一个超分的模型&#xff0c;经过调研准备用 Real-ESRGAN。特此记录论文阅读和实战过程。 论文阅读 论文地址&#xff1a;Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data Github&#xff1a;https://github.com/xinntao/Re…

[附源码]java毕业设计学生宿舍设备报修

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【教学类-16-01】20221122《世界杯七巧板A4-随机参考图》(大班)

效果展示&#xff1a; 单页效果 多页效果 背景需求&#xff1a; 2022年11月20日 2022年卡塔尔世界杯足球赛在卡塔尔首都多哈举行。借此契机&#xff0c;我设计一份七巧板让幼儿拼”踢足球“的造型。 图片准备&#xff1a; 从网上拉了18张各种”踢球七巧板造型图“ 新建一个…

几种常用关系型数据库架构和实现原理

【摘要】本文介绍几种常用(闭源、开源)关系型数据库的架构和实现原理,包括Oracle、MySQL、PostgreSQL、GaussDB T,涉及产品最新参数指标等请以各官网为准。 一、 Oracle (一) Oracle 架构 Oracle Server包括数据库(Database)和实例(Instance)两大部分,两者相互独立…

SSO单点登录流程详解

概念 单点登录&#xff08;Single Sign On&#xff09;&#xff0c;简称为 SSO&#xff0c;是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。 背景 企业发展初期&#xff0c;系统设计不…

关于pbootcms中被挂马以后的处理

最近一段时间很多使用pbootcms建设的网站都遭遇到了首页挂马的问题,表现形式便是首页页面增加了很多?id123,?/?id37087875.csv,?id26993492.shtml等等形态.当我们查看后台系统日志中的蜘蛛访问或者首页上多了这些链接的时候,基本上就是被挂马了,这个时候我们需要及时作出处…

Go:微服务架构下的单元测试(基于 Ginkgo、gomock 、Gomega)

文章目录简介一、Ginkgo包的引入和简单介绍二、Dockertest 使用三、编写单元测试1. 编写 data 层的测试代码四、引入 gomock 包&#xff0c;mock 对象模拟依赖项1. 编写生成 mock 文件方法2. 编写 biz 层的测试方法3. 验证单元测试小结简介 本文主要使用 Ginkgo[2] 、gomock[3…

Vue之watch监听

计算属性不能用异步代码&#xff1b;有返回值的函数&#xff0c;用异步代码也不行&#xff1b;没有返回值的函数&#xff0c;可以用异步代码&#xff1b;watch监听也可以放异步代码&#xff1b;data、methods、computed、watch的区别&#xff1a; data&#xff1a;状态&#xf…

试题 算法提高 网格贪吃蛇(离散化 + DP)

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述   那个曾经风靡全球的贪吃蛇游戏又回来啦&#xff01;这次贪吃蛇在m行n列的网格上沿格线爬行&#xff0c;从左下角坐标为(0,0)的格…

miui14即将闪亮登场 小米首批机型搭配名单 旧版系列机型可能无望更新

小米系列机型年底大动作。新版机型发布和miui14系统将会在一些机型中更新&#xff0c;而最新的miui14版本以简便 精简 轻巧为目的。希望miui14版本能为米粉带来意想不到的期待。以往较多米粉都反馈系统越更新越臃肿。系统资源占用太多。 小米 MIUI 14 的版本号以及适配支持机型…

柯桥俄语培训机构哪家好,能说出“как”的多少种用法呢?

学了这么久俄语的你&#xff0c;能说出“как”的多少种用法呢&#xff1f; 一起来看看这份“как”最强使用攻略吧~ 01 作为疑问副词在句中做状语&#xff0c;"如何""怎么样""多么" 例&#xff1a; Как твои дела&#xff1f; …

H3C 防火墙混合实验

H3C 防火墙混合实验一、项目拓扑二、项目需求三、配置步骤1. 配置IP地址2. FW默认路由&#xff0c;FW指向internet3. 绑定防火墙安全域端口4. 配置防火墙安全策略5. OSPF6. NAT7. PC 默认路由&#xff0c;PC 指向 R1链接: 拓扑下载 一、项目拓扑 二、项目需求 根据题目要求配…

6种常见三维曲面的Three.js实现

这篇文章详细介绍了三次曲线、贝塞尔曲线和 B 样条曲线和曲面背后的数学原理&#xff0c;并提供了使用 Three.js 库实现的代码。 1、简介 你可以在这里访问上图应用程序。此应用程序名为 CurSur&#xff0c;是 Curves and Surfaces 的简称。原始代码可以在这里获取。 在几何设…

算法训练Day27 | LeetCode39. 组合总和 (元素可重复,数组长度不限);40. 组合总和III(去重);131.分割回文串

目录 LeetCode39. 组合总和 1. 思路 2. 代码实现 3. 剪枝优化 4. 复杂度分析 5. 思考与收获 LeetCode40. 组合总和III 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 LeetCode131.分割回文串 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 LeetCode39…

通过DewarpNet解决图片扭曲问题

一、论文 DewarpNet:使用堆叠的三维和二维回归网络进行单幅图像文件纠正 论文地址: https://paperswithcode.com/paper/dewarpnet-single-image-document-unwarping 代码地址: https://github.com/cvlab-stonybrook/DewarpNet 二、效果展示 2.1 论文图片效果展示 从上往下…

Android Material Design之SwitchMaterial(三)

老规矩先上图 引入 implementation com.google.android.material:material:1.4.0说明 该控件就是Switch控件的增强版本,属性基本一致 属性 属性描述android:text文本android:textOn滑块打开时显示的文本android:textOff滑块关闭时显示的文本android:thumb滑块图片app:trac…

这款比奥维地图还方便的地图软件!轻便好用,功能很强大

写方案或报告的人往往会遇到需要在地图上标注的问题。最简单的方法莫过于在百度上截图&#xff0c;然后在ppt里标注。现场勘察需要定位&#xff0c;最基本的方法是利用手机读取和记录经纬度坐标。但使用百度底图标注给客户的感觉太普通&#xff0c;而勘察现场记录的经纬度数据事…