什么是空间复杂度呢?

空间复杂度是对一个算法在运行过程中占用内存空间大小的量度,记做S(n)=O(f(n).

利用程序的空间复杂度,可以对程序运行时所需要多少内存有个预先估计。

我这里来回答两个常见的相关问题

空间复杂度是考虑程序(可执行文件)的大小么?

很多同学都会混淆 程序运行时内存大小和程序本身的大小。

这里我要强调一下空间复杂度是考虑程序运行时占用内存的大小,而不是可执行文件的大小。

空间复杂度是准确算出程序运行时所占用的内存么?

同学们不要以为空间复杂度就已经精准的掌握了程序的内存使用大小

很有多因素会影响程序真正内存使用大小

例如编译器的内存对齐,编程语言容器的底层实现等等这些都会影响到程序内存的开销。

所以空间复杂度是预先大体评估程序内存使用的大小。

说到空间复杂度,我想同学们在leetcode上应该遇到过这种错误,就是超出内存限制

leetcode上并没有说他的限制是多大。 但是我们要知道内存不是无限开辟的。

为了避免内存超出限制,这也需要我们对算法占用多大的内存有一个大体的预估。

这就用到了算法空间复杂度的分析。

我们来看一下例子

那么先来看看什么时候的空间复杂度是O(1)

看以下代码:

int j = 0;
for (int i = 0; i < n; i&#

算法分析中的空间复杂度相关推荐

  1. 汉诺塔递归的空间复杂度_算法分析中的空间复杂度,你真的会了么?

    笔者介绍:先后在腾讯和百度采坑,个人公众号:「代码随想录」,分享自己对互联网以及技术的想法与思考.欢迎关注! 什么是空间复杂度呢? 一个程序的空间复杂度是指运行完一个算法所需内存的大小. 空间复杂度( ...

  2. 算法分析中递推式的一般代数解法

    算法分析中经常遇到需要求解递推式的情况,即将递推式改写为等价的封闭形式.例如汉诺塔问题的时间复杂度递推形式为T(n)=2T(n−1)+1(n≥1)T(n)=2T(n−1)+1(n≥1),可以解出封闭形 ...

  3. 微积分学和算法分析中的O, o

    微积分学和算法分析中的OOO, o" role="presentation">ooo 引言 微积分中有无穷小和有界的概念,对应的符号分别为OOO, o" ...

  4. 算法分析中常用的几种渐进符号

    算法分析中常用的几种渐进符号 在算法分析中,经常会遇到以下几种渐进符号 渐渐近精确界记号:ΘΘ(big-theta) 渐近上界记号 :OO(big-oh) 渐近下界记号 :ΩΩ(big-omege) ...

  5. 算法分析中的小o符号

    原文出自 Introduction To Algorithms, 3rd Edition

  6. 一些算法分析中的常用级数

    1.幂方级数:比幂次高出一阶 幂次为1时也就是我们常说的算术级数. 证明: 2.几何级数:与末项同阶 3.调和级数.对数级数: 4.一些收敛级数:

  7. java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析

    0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...

  8. Java-时间复杂度和空间复杂度

    1.算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率.时间效率被称为时间复杂度,而空间效率被称作空间复杂度. 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所 ...

  9. 敏感性分析算法 程序_计算机程序设计艺术(TAOCP)精读笔记1 - 算法分析真正应该有的样子 Part 1...

    系列文章的导航链接: 张浩驰:<趣味算法>专栏所有文章分类 - 导航​zhuanlan.zhihu.com 下篇文章Part 2导航: 张浩驰:计算机程序设计艺术(TAOCP)精读笔记1 ...

  10. 浅淡数据结构时间复杂度和空间复杂度

    文章目录 前言 1.时间复杂度和空间复杂度的相关介绍 1.为什么要引入时间复杂度和空间复杂度的概念 2.什么是时间复杂度和空间复杂度 2.具体示例分析 1.大O法只保留高阶项 2.一般情况关注的是算法 ...

最新文章

  1. 1,Composite UI Application Block (CAB) 介绍
  2. Python logging 模块
  3. day16_ajax学习笔记
  4. sgn matlab,matlab中.*的问题
  5. 欢迎使用CSDN-markdown编辑器1
  6. 信息系统项目管理师-挣值管理(PV、 AC、 EV、 ETC、 CV、 SV、 CPI、 SP)
  7. 【推荐系统入门】一窥推荐系统的原理
  8. css--左右visibility建立 “collapse”值问题
  9. Android开发之虹软人脸识别活体检测SDK包Bitmap转NV21方法
  10. ice库c语言例子,很不多的ICE架构入门学习例子
  11. centos 宝塔面板 mongodb 给新的数据库 创建登录用户和密码
  12. HTML表div布局,html使用列表 以及div的布局和table的布局
  13. c++ 线程池_JAVA并发编程:线程池ThreadPoolExecutor源码分析
  14. Chrome 无法抓取跳转请求的解决办法
  15. [位运算|状态压缩] leetcode 78 子集
  16. Mysql导入导出时遇到的问题
  17. DIV布局美丽家乡网站设计——美丽家乡-含论文(4页) HTML+CSS+JavaScript web前端设计与开发期末作品_期末大作业
  18. java面向对象编程培训_Java面向对象编程简介
  19. thinkphp3.2.3 支付宝授权登录php
  20. 关于ChatGPT人工智能浅谈

热门文章

  1. Java设计模式之接口型模式总结
  2. 创建hadoop 归档文件
  3. shell脚本中执行python脚本并接收其返回值的例子
  4. Uploadify 控件上传图片 + 预览
  5. Android----Intent详解
  6. EonerCMS——做一个仿桌面系统的CMS(十四)
  7. 将15位的身份证号码升级到18位的关键是校验码
  8. 机器学习基础:支持向量机(Machine Learning Fundamentals: Support Vector Machine, SVM)
  9. Google 正式发布 Fuchsia OS,Flutter 集成尚存问题
  10. 在FL Studio中如何使用混音器的效果