算法基础篇-01-时间复杂度和空间复杂度

news2024/11/25 0:39:29

1. 用什么表示算法的运行快慢?

在这里插入图片描述

  • n 代表是算法里面的问题规模,n越大,运算越慢,比如n=1和n=100肯定是不一样的;
  • 机器不一样,相同的算法代码运行所消耗的时间也不一样;

2. 借用生活中的案例

在这里插入图片描述
类比生活中的一些事件,我们通常会采用 估算,而不是具体到秒;算法中的时间复杂度也是借鉴生活中的案例;

3. 时间复杂度

3.1 案例1

在这里插入图片描述

  • O: 数学中式子的上界,可以理解为估算的意思;
  • O(1),O(n), O(n^2), O(n^3) 里面的1,n等代表 估算时间单位,打印一个print是一个 单位,表示O(1),打印3行print,也是O(1),因为它是一个单位;

3.2 案例2

在这里插入图片描述
如上图所示:因为运行三行print和运行一行,其实对计算机来说影响不大,它只要不突破规模,即还是O(1) ,1是一个估算单位,就好比生活中别人问你睡了几个小时,你不会说睡了几个小时几分几秒,而是说睡了几个小时,小时和秒是不同的时间单位规模;

3.3 案例3

在这里插入图片描述

当循环中存在运行减半的现象,必然存在对数,由于计算机当中大多数都是2进制,所以可以将O(log2^n) 简写成 O(logn);

3.4 时间复杂度小结

在这里插入图片描述

3.5 如何确定算法的时间复杂度小技巧

在这里插入图片描述

4. 空间复杂度

在这里插入图片描述

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

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

相关文章

[附源码]Python计算机毕业设计SSM基于的校园卡管理系统(程序+LW)

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

鸿蒙开发初体验以及遇到的几点坑

今天尝试了一下鸿蒙开发,有一些经验跟大家进行分享。建议大家先看完我的文章,再去尝试鸿蒙。 我安装好了开发工具,并且跑通了Hello World程序。同时,我还跑通了小鸿网课Java版本项目: 感觉,还好吧… 操作…

[附源码]Python计算机毕业设计SSM基于的小型房屋租赁平台(程序+LW)

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

WordPress后台添加顶级菜单add_menu_page()函数的用法及实例代码

WordPress后台管理页面包括文章、多媒体、链接、页面、评论、外观、插件......等等主菜单选项,我们在开发主题和插件的时候经常需要在后台添加菜单。 目录 一、WordPress后台添加顶级菜单 概述 一、add_menu_page()函数介绍 三、参数详解 四、Wordpress默认菜…

零基础怎么入门Python?

“零基础可以学习Python吗?” 这是很多初学者经常问的一个问题,我的回答是可以! 现在很多小学、初中也开始学习编程语言,选择的入门语言就是Python。 Python其实和学中文没什么区别,学习中文是为了更好的和人沟通&a…

【redis事务】@Transactional对Redis事务起作用(包含redis+lua)

【redis事务】Transactional对Redis事务起作用(包含redislua)一、前言二、准备三、StringRedisTemplate 开启事务四、关键代码(验证Transactional对redis事务是否生效)五、关键代码(验证Transactional对redislua是否生…

回顾Redis之对象与数据结构

引言 Redis是一款基于键值对的数据结构存储系统,它的特点是基于内存操作、单线程处理命令、IO多路复用模型处理网络请求、键值对存储与简单丰富的数据结构等等 这篇文章主要围绕Redis中的对象与数据结构来详细说明键值对存储与简单丰富的数据结构这两大特点 Redi…

CSS 实现一个3d魔方

前言 👏CSS 实现一个3d魔方,速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现步骤 魔方的一面为九个圆角正方形,定义正方形的宽高为–w,九个正方形的直接的间距为–gap,…

Spring整合其他技术

Spring整合其他技术 1 Spring整合mybatis 1.1 思路分析 问题导入 mybatis进行数据层操作的核心对象是谁? 1.1.1 MyBatis程序核心对象分析 1.1.2 整合MyBatis 使用SqlSessionFactoryBean封装SqlSessionFactory需要的环境信息 使用MapperScannerConfigurer加载…

安卓玩机搞机技巧综合资源----手机显秒设置 多种方式【十一】

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红…

电子学会2020年9月青少年软件编程(图形化)等级考试试卷(二级)答案解析

目录 一、单选题(共25题,每题2分,共50分) 二、判断题(共10题,每题2分,共20分) 三、编程题【该题由测评师线下评分】(共2题,共30分) 青少年软件…

软件安全设计(威胁建模实现)

目录 一、实验目的 二、实验软硬件要求 三、实验预习 四、实验内容(实验步骤、测试数据等) 实验步骤 确定安全目标 创建在线学习系统概况图 分解在线学习系统 确定威胁 威胁评估 确定威胁缓解计划或策略 验证和记录威胁 一、实验目的 熟悉软…

[附源码]JAVA毕业设计医院管理系统(系统+LW)

[附源码]JAVA毕业设计医院管理系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

Spring Cloud Feign的自定义配置及使用

Feign 提供了很多的扩展机制,让用户可以更加灵活的使用,这节我们来学习 Feign 的一些自定义配置。 日志配置 有时候我们遇到 Bug,比如接口调用失败、参数没收到等问题,或者想看看调用性能,就需要配置 Feign 的日志了…

遥感影像(tif,img)概览/金字塔(overviews)的创建与清除

使用python环境下的gdal进行遥感影像(tif,img格式)概览(overviews)的创建与清除,前边是测试过程,结论在最后 过程 问题起因是拿到一批img格式的影像需要转cog,程序运行中报了个错 …

ESXi8.0安装,实体机安装,IPMI远程安装实战笔记

目录 1.前言 2.连接主板IMPI 3.硬件兼容及BIOS设置 4.从U盘安装ESXi ESXi8.0安装包下载: 链接:https://pan.baidu.com/s/1-a3ka1TAScFPtAc29jcxzQ 提取码:qwhg 1.前言 ESXi系列的虚拟机直接以操作系统的形态出现,与基于Li…

【Linux静态库和动态库】

Linux静态库和动态库1. 编译与ELF格式2. 库的基本概念3.静态库的制作:(假设要将a.c、b.c制作成静态库)4.静态库的常见操作5.静态库的使用6. 多个库的相互依赖举例1.(库文件制作、错误处理)7.静态库和动态库的关系和区别8.动态库的制作软链接 …

ADI Blackfin DSP处理器-BF533的开发详解25:USB接口设计(含源代码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 硬件设计原理图 功能介绍 跟网口一样,USB这个设计很勉强,因为BF533并不带USB口,当时是给一个大厂做MP4的方案…

猿如意中的【UltraEdit】开发工具详情介绍

目录 一、工具名称 二、下载安装渠道 2.1 什么是猿如意? 2.2 如何下载猿如意? 2.3 如何在猿如意中下载UltraEdit? 三、UltraEdit介绍 四、软件安装过程 五、软件界面 六、UltraEdit功能特点介绍 七、UltraEdit使用/体验感受…

Python测试进阶(二)

文章目录简介selenium等待Web控件交互表单操作多窗口frame多浏览器处理用 js 操作文件上传弹窗pageObject复用浏览器简介 这部分主要介绍 web 自动化测试 selenium 专门测试 web 的工具,根据测试用例,直接在浏览器上执行对应动作还是在 pytest 框架中…