算法学习(三):算法的空间复杂度


概念定义

  • 输入空间:存储输入数据所需的空间大小
  • 暂存空间:算法运行过程中,存储所有中间变量和对象等数据所需的空间大小
  • 输出空间:算法运行返回时,存储输出数据所需的空间大小

通常情况下,空间复杂度是指在输入数据大小为N时,算法运行所使用的【暂存空间】 + 【输出空间】的总体大小

 

 而根据不同来源,算法使用的内存空间分为三类:

  指令空间:

    编译后,程序指令所使用的内存空间

  数据空间:

    算法中的各项变量使用的空间,包括:声明的常量、变量、动态数组、动态对象等使用的内存空间。

  栈帧空间:

    程序调用函数是基于栈实现的,函数在调用期间,占用常量大小的栈帧空间,直至返回后释放。

符号表示

  通常情况下,空间负责度统计算法在最差情况下使用的空间大小,以体现算法运行所需预留的空间量,使用符号O表示。

  最差情况有两层含义,分别为【最差输入数据】、算法运行中的【最差运行点】。

常见种类

  根据从小到大排序,常见的算法空间复杂度有:

    O(1)<O(logN)<O(N)<O(N2)<O(2N)

 

 

参考资料:https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/r8ytog/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM