zoukankan      html  css  js  c++  java
  • 空间复杂度怎么算?如何计算空间复杂度?

    首先要明确一个概念,变量的内存分配发生在定义的时候

     忽略常数,用O(1)表示 
    递归算法的空间复杂度=递归深度N*每次递归所要的辅助空间 
    对于单线程来说,递归有运行时堆栈,求的是递归最深的那一次压栈所耗费的空间的个数,因为递归最深的那一次所耗费的空间足以容纳它所有递归过程。
    a = 0
    b = 0
    print(a,b)
    它的空间复杂度O(n)=O(1);

    def fun(n):
    k = 10
    if n == k:
    return n
    else:
    return fun(++n)
    递归实现,调用fun函数,每次都创建1个变量k。调用n次,空间复杂度O(n*1)=O(n)。

    for(i=0;i<n;++):
    temp = i
     变量的内存分配发生在定义的时候,因为temp的定义是循环里边,所以是n*O(1)

    temp=0;
    for(i=0;i<n;i++):
    temp = i
    temp定义在循环外边,所以是1*O(1) 
    ---------------------
    作者:qq_17534301
    来源:CSDN
    原文:https://blog.csdn.net/qq_17534301/article/details/82872357
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    2020-01月-02月
    Work needing Technologies
    gcc和 gdb工具(转)
    pyenv and grunt-contrib-testem
    Statistics Books
    HTML5学习--SVG全攻略(基础篇)
    一个完整的学院网站实现过程
    JavaScript 常用单词整理
    一张图教会CSS3倒影
    Python大数据处理案例
  • 原文地址:https://www.cnblogs.com/wonker/p/11238418.html
Copyright © 2011-2022 走看看