当前位置: 首页 > news >正文

时间空间复杂度

算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。

时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。

时间复杂度

时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。

大 O 的渐进表示法

大O符号(Big O notation):是用于描述函数渐进行为的数学符号。

推导大 O 阶方法:

  1. 所有常数都用常数1表示。
  2. 只保留最高阶项。
  3. 如果最高阶项存在且不是1,则去除与这个项的系数,得到的结果就是大O阶。

空间复杂度

空间复杂度也是一个数学表达式,它表示的是一个算法程序在运行过程中因为算法的需要额外开辟的空间。空间复杂度不是计算要开辟多少个字节的空间,而是计算变量的个数,因为常规情况下每个变量的大小差异不会很大,空间复杂度的计算规则和时间复杂度类似,也要用大O渐进表示法。

注意:函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译期间已经确定好了,因此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定。

http://www.dtcms.com/a/313274.html

相关文章:

  • 高质量数据集|从武汉光谷《面向科技情报大模型的高质量数据集建设》招标项目谈起
  • 实现游戏排行榜
  • SpringBoot项目数据脱敏(自定义注解)
  • 关于corn
  • SpringAI无人机智能灌溉、本地化AI推理、分析气象站、分析球场草皮系统实践
  • Python操作Excel——从入门到精通
  • QML 将一个qml文件定义为公共的全局单例
  • 外设数据到昇腾310推理卡 之五 3403ATU
  • 【分析学】Hilbert 空间
  • python脚本-ATE测试数据stdf文件自动处理之概率分布图、直方图、数据分布图
  • 说说对泛型的理解?
  • 数据资产——解读2025 数据提供合同(示范文本)【附全文阅读】
  • linux扩展磁盘容量到home下
  • Python篇---import
  • 线段树学习笔记 - 区间最值操作
  • 实战案例:容器数据卷四部曲(三)目录数据卷
  • DDR SDRAM中的DQS与DQ信号
  • 【网络安全】日志文件格式
  • 数据结构——单向链表
  • Kali基础知识点【1】
  • Pytorch-04 搭建神经网络架构工作流
  • TikTokShop-美国本土跨境-达人邀约_影刀RPA源码解读
  • 8.1.3 TiDB集群方案雨Replication原理
  • 关于逻辑回归的相关知识大全
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘scikit-learn’问题
  • 【AI】持久化聊天记忆(隔离对话)
  • ELECTRICAL靶机攻略
  • Linux驱动学习(四)字符设备
  • PyTorch生成式人工智能(24)——使用PyTorch构建Transformer模型
  • HBK公司核心产品和业务简析