1.算法效率

算法效率分析分为两种 : ①时间效率, ②空间效率 

时间效率即为 时间复杂度 , 时间复杂度主要衡量一个算法的运行速度

空间效率即为 空间复杂度 , 空间复杂度主要衡量一个算法所需要的额外空间

2.时间复杂度

2.1 时间复杂度的概念

定义 : 再计算机科学中 , 算法的时间复杂度 是一个数学函数 , 它定量描述了 该算法的运行时间

用于衡量算法执行时间 随输入规模增长的变化趋势

2.2 大O的渐进表示法

计算func基本操作执行了多少次?

    public static void func1(int N){int count = 0;for(int i = 0;i<N;i++){for(int j = 0;j<N;j++){count++;}}for(int k = 0;k<N*2;k++){count++;}int m = 10;while((m--)>0){count++;}System.out.println(count);}

func1执行基本操作次数:

F(N) = N^2 + 2*N + 10 

实际中我们计算时间复杂度时 , 我们其实不一定要计算精确的执行次数 , 而只需要大概执行次数 , 那么我们这里使用大O的渐进表示法

O : 用于描述函数渐进行为的数学符号

2.3 推导大O阶方法

  • 用常数 1 取代运行时间中的所有加法常数
  • 再修改后的函数中 , 只保留最高阶项
  • 如果最高阶存在且不是1, 则取出这一项的系数 , 结果就是大O阶

例如: func1使用大O简静法表示后 , func1的时间复杂度为 O(N^2)

通过用大O的渐进表示法 去掉了对结果影响不大的项 , 简洁明了的表示出了执行次数

另外 有些算法还存在 时间复杂度 最好 , 最坏 , 平均的情况

最坏情况 : 任意输入规模的最大运行次数 (上界)

平均情况 : 任意输入规模的期望运行次数

最好情况 : 任意输入规模的最小运行次数 (下界)

例如: 一个长度为N的数组中寻找一个数据 X

最好情况 : 一次找到    最坏情况 : N次找到   平均情况 : N/2次找到

在实际中一般关注的是算法的 最坏运行情况 , 所以数组中搜索数据的时间复杂度为O(N)

3.空间复杂度

定义 : 是对一个算法在运行过程中临时占用空间大小的度量

用于评估算法对内存资源的消耗情况

空间复杂度计算的是 变量的个数

O(1) 常数空间

int sum(int a, int b) {int result = a + b; // 仅占用固定空间return result;
}

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一,设计模式-单例模式

目的设计单例模式的目的是为了解决两个问题&#xff1a;保证一个类只有一个实例这种需求是需要控制某些资源的共享权限&#xff0c;比如文件资源、数据库资源。为该实例提供一个全局访问节点相较于通过全局变量保存重要的共享对象&#xff0c;通过一个封装的类对象&#xff0c;…

AIStarter修复macOS 15兼容问题:跨平台AI项目管理新体验

AIStarter是全网唯一支持Windows、Mac和Linux的AI管理平台&#xff0c;为开发者提供便捷的AI项目管理体验。近期&#xff0c;熊哥在视频中分享了针对macOS 15系统无法打开AIStarter的修复方案&#xff0c;最新版已完美兼容。本文基于视频内容&#xff0c;详解修复细节与使用技巧…

LabVIEW 纺织检测数据传递

基于 LabVIEW 实现纺织检测系统中上位机&#xff08;PC 机&#xff09;与下位机&#xff08;单片机&#xff09;的串口数据传递&#xff0c;成功应用于煮茧机温度测量系统。通过采用特定硬件架构与软件设计&#xff0c;实现了温度数据的高效采集、传输与分析&#xff0c;操作简…

ECCV-2018《Variational Wasserstein Clustering》

核心思想 该论文提出了一个基于最优传输(optimal transportation) 理论的新型聚类方法&#xff0c;称为变分Wasserstein聚类(Variational Wasserstein Clustering, VWC)。其核心思想有三点&#xff1a;建立最优传输与k-means聚类的联系&#xff1a;作者指出k-means聚类问题本质…

部署 Docker 应用详解(MySQL + Tomcat + Nginx + Redis)

文章目录一、MySQL二、Tomcat三、Nginx四、Redis一、MySQL 搜索 MySQL 镜像下载 MySQL 镜像创建 MySQL 容器 docker run -i -t/d -p 3307:3306 --namec_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 m…

VR全景导览在大型活动中的应用实践:优化观众体验与现场管理

大型演出赛事往往吸引海量观众&#xff0c;但复杂的场馆环境常带来诸多困扰&#xff1a;如何快速找到座位看台区域&#xff1f;停车位如何规划&#xff1f;附近公交地铁站在哪&#xff1f;这些痛点直接影响观众体验与现场秩序。VR全景技术为解决这些问题提供了有效方案。通过在…

OpenJDK 17 JIT编译器堆栈分析

##堆栈(gdb) bt #0 PhaseOutput::safepoint_poll_table (this0x7fffd0bfb950) at /home/yym/openjdk17/jdk17-master/src/hotspot/share/opto/output.hpp:173 #1 0x00007ffff689634e in PhaseOutput::fill_buffer (this0x7fffd0bfb950, cb0x7fffd0bfb970, blk_starts0x7fffb0…

功能测试中常见的面试题-二

二、测试设计与用例编写题解释等价类划分 (Equivalence Partitioning) 和边界值分析 (Boundary Value Analysis)&#xff1f;并举例说明。等价类划分 (EP)&#xff1a; 将输入域划分为若干组&#xff08;等价类&#xff09;&#xff0c;假设同一组内的数据对揭露程序错误具有等…

SOLi-LABS Page-4 (Challenges)--54-65关

sql-54 翻译一下页面&#xff0c;得知我们只有十次机会。id参数是单引号闭合。 ?id-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schemadatabase()-- 我得到的表名是igsyiz2p7z。&#xff08;每个人得到的应该都不一样&#…

docker代码如何在vscod上修改

基于 docker-compose.yml文件&#xff08;包含 ​​emqx​​&#xff08;MQTT服务&#xff09;、​​backend​​&#xff08;后端服务&#xff09;、​​mysql​​&#xff08;数据库&#xff09;&#xff09;的详细运行、调试、增改删操作说明&#xff0c;结合流程图示意&…

HTML5 CSS3 从入门到精通:构建现代Web的艺术与科学

本文将带你系统地学习掌握现代Web前端的基础与核心&#xff0c;最终能够独立构建语义清晰、布局灵活、交互丰富的专业级网站。 第一章&#xff1a;夯实基础 - HTML5语义化与结构艺术 1.1 告别<div>混沌&#xff1a;语义化标签的力量 <header><h1>网站标题…

C# 微软依赖注入 (Microsoft.Extensions.DependencyInjection) 详解

文章目录 前言 核心原理 三大生命周期 核心接口与类 基础使用示例 关键特性详解 1、构造函数注入 2、作用域管理 3、服务解析方法 4、延迟加载 常见问题解决 问题1:循环依赖 问题2:多实现选择 性能优化技巧 扩展方法示例 前言 微软的依赖注入框架是 .NET Core/5+ 的核心组件…

【车联网kafka】Kafka核心架构与实战经验(第四篇)

一、社团扛把子不为人知的秘密 香港社团里&#xff0c;Kafka 是整个组织的名号&#xff0c;ZooKeeper 就是说一不二的长老团&#xff0c;各个片区的 “话事人” 就是 broker&#xff0c;而能统领所有片区的 “扛把子”&#xff0c;就是 Kafka 里的控制器。​ 1.1 选举的秘密 每…

Scala重点(基础、面向对象、高阶函数、集合、模式匹配)

1. 基础语法1.1. 注释和java一样我是单行注释 /* 我是多行注释 我是多行注释 */ /** * 我是文档注释 * 我是文档注释 */1.2. 语句语句可以不以分号结尾一条语句独占一行 println("Hello World!")多条语句在一行 println("Hello World!"); println("He…

明远智睿T113-i核心板:工业设备制造领域的革新利器

在工业设备制造这片充满挑战与机遇的领域&#xff0c;技术革新如同一股汹涌浪潮&#xff0c;不断重塑着市场竞争的格局。随着技术持续进步&#xff0c;市场竞争愈发激烈&#xff0c;制造商们面临着如何在保证产品卓越性能的同时&#xff0c;有效控制成本这一关键难题。在此背景…

122-基于Flask的校园霸凌数据可视化分析系统

校园霸凌数据可视化分析系统 - 基于Flask的全栈数据分析平台 本文详细介绍了一个基于Flask框架开发的校园霸凌数据可视化分析系统&#xff0c;从技术架构到功能实现&#xff0c;为数据分析项目开发提供参考。 &#x1f4cb; 目录 项目概述技术架构核心功能代码结构技术栈详解核…

Docker 网络设置方式详解

Docker 网络是容器通信的核心基础&#xff0c;它允许容器之间、容器与主机之间以及容器与外部网络之间进行数据交互。Docker 提供了多种网络驱动类型&#xff0c;适用于不同场景&#xff0c;下面详细介绍 Docker 网络的设置方式。一、Docker 网络的基本概念 Docker 网络通过驱动…

export default和export function的作用及export的含义

在 JavaScript 中&#xff0c;export 是一个关键字&#xff0c;用于将模块中的变量、函数、类等导出&#xff0c;以便其他模块可以导入和使用。export default 和 export&#xff08;非默认导出&#xff09;是两种不同的导出方式&#xff0c;它们在使用场景和语义上有明显的区别…

免费 ollama 可用地址共享 内含免费 deepseek,gpt,bge,llama,Qwen,embed 大模型等

ollama 共享 介绍 集ollama地址的批量添加&#xff0c;批量校验&#xff0c;批量获取 &#xff0c;api接口调用于一体 演示地址&#xff1a;ollama格式化工具 开源地址&#xff1a;https://gitee.com/web/ollama-share 使用说明 index.php 通过提交table 批量提交ollama地…

Android Audio实战——获取活跃音频类型(十五)

在 Android Audio 开发中,很多场景需要获取当前正在播放的音频类型,而在音频管理器 AudioManager 中并没有发现类似的接口,这一篇文章就来看一下实现获取活跃音频类型的方式。 一、音频类型获取 对于获取当前活跃音频流类型,在《硬按键调节音量》中是通过 getActiveStream…