前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >02-空间复杂度、递归

02-空间复杂度、递归

作者头像
xbhog
发布2019-10-22 17:14:33
3980
发布2019-10-22 17:14:33
举报
文章被收录于专栏:开发技能乱炖开发技能乱炖

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_43908900/article/details/102537371

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

空间复杂度的表示方式:

  1. 使用了几个变量:O(1);
  2. 使用了长度为n的一位列表:O(n);
  3. 使用了m/n行n列的二位列表:O(mn)/O(n**2);

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

二:递归:

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

代码语言:javascript
复制
#当我们输入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(其中比较大的空白是递归)。

三:汉诺塔介绍及问题

汉诺塔的递归问题:

代码语言:javascript
复制
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)

结果:

代码语言:javascript
复制
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

个人技术性网站,更多内容尽在此站:http://xbhog.cn/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 个人技术性网站,更多内容尽在此站:http://xbhog.cn/
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档