首页 > 其他 > 详细

空间复杂度

时间:2019-10-19 23:12:24      阅读:69      评论:0      收藏:0      [点我收藏+]

一:空间复杂度:用来评估算法内存占用大小的问题

空间复杂度的表示方式:

  1. 使用了几个变量:O(1);

  2. 使用了长度为n的一位列表:O(n);

  3. 使用了m/n行n列的二位列表:O(mn)/O(n**2);

公司一般采取的策略是“空间换时间”===》怎么内存大小来降低网页或者应用的打开时间/访问时间。

二:递归:

递归的特点:1). 调用自身 2). 结束条件

#当我们输入3的时候,一下代码的打印结果是什么?
def func1(x):
    if x >0:
        print(x)
        func1(x-1)
#--------------------------------
def func2(x):
    if x >0:
        func2(x-1)
        print(x)
#--------------------------------     
技术分享图片
技术分享图片

由上图可知:func1函数打印出来的是3、2、1;func2函数打印出来的是1、2、3(其中比较大的空白是递归)。

三:汉诺塔介绍及问题

汉诺塔的递归问题:

def hanio(n,a,b,c):
    if n > 0:
        hanio(n-1,a,c,b)
        print("moving %s to %s" %(a,c))
        hanio(n-1,b,a,c)

结果:

moving A to C
moving A to B
moving C to B
moving A to C
moving B to A
moving B to C
moving A to C

空间复杂度

原文:https://www.cnblogs.com/xbhog/p/11706074.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!