Python数据结构与算法笔记_第一节

本文介绍了算法的基础概念,包括时间复杂度作为评估算法运行效率的指标,空间复杂度关注内存使用,以及递归的原理,通过函数示例解释了递归的两个关键特征和必要结束条件。此外,文章还通过汉诺塔问题展示了递归的应用。
摘要由CSDN通过智能技术生成

01 算法入门概念_哔哩哔哩_bilibili

第一节

1、时间复杂度

时间复杂度:是用来估计算法运行时间的一个式子(单位)。

一般来说,时间复杂度高的算法比复杂度低的算法慢。

 

2、空间复杂度 

 3、递归

递归的两个特点:1、调用自身 2、结束条件
 例子:

def func1 (x):
    print(x)
    func1(x-1)

def func2(x):
    if x>0:
        print(x)
        func2(x+1)

def func3(x):
    if x>0:
        print(x)
        func3(x)

def func4(x):
    if x>0:
        func4(x-1)
        print(x)

func1(6)  #无结束条件 ,不是递归

func2(6) #无结束条件  ,不是递归

func3(6)  #是递归

func4(6)  #是递归

                                             

 

                                       

 

 递归实例︰汉诺塔问题

 

# 汉诺塔问题
# A柱有n个圆盘时,移动次数为2n+1。
def hannuta(n,a,b,c):
    if n>0:
        hannuta(n-1,a,c,b)
        print(f'盘子{n} 从 {a} 到 {c}',)
        hannuta(n-1,b,a,c,)

hannuta(3,'A','B','C',)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知源书院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值