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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    AtCoder 杂题乱写
    JOISC2020 遗迹
    【考试总结】20220107
    AGC021F Trinity
    CCPC2021 广州A/CF Gym103415A
    【考试总结】20220115
    JDK8 时间api当天的开始和截至时间
    技术方案模板
    正则表达式
    组合算法
  • 原文地址:https://www.cnblogs.com/wonker/p/11238418.html
Copyright © 2011-2022 走看看