a*算法的时间复杂度_递归与动态规划算法时间复杂度的简单理解

本文通过爬楼梯问题对比了递归和动态规划算法的时间复杂度。实验结果显示,当楼梯数量为20时,动态规划算法执行18次,而递归算法执行了13529次。递归算法时间复杂度为O(2^n),而动态规划的时间复杂度更低,为O(n)。因此,在解决此类问题时,动态规划更优。
摘要由CSDN通过智能技术生成

递归算法与动态规划算法是计算机程序设计、数据结构中常见算法。有些书籍教材中对递归算法与动态规划算法比较时,总是指出动态规划算法优于递归算法,在问题较为复杂时不建议使用递归算法。本文主要以在实际问题解决过程中对递归算法与动态规划算法进行比较,判断其时间复杂度。

3d9234393a73b3b221aaf831be8639f0.png

计算机程序算法分析


1、问题

假设某人爬楼梯,一次只能攀爬1台阶或者2台阶,某楼梯共有N阶,请计算该人爬上N阶楼梯一共有多少种方法?

2、递归算法

该问题与斐波那契数列十分类似,是一道地地道道的递归题目,因此可以直接使用递归算法实现问题求解。编写函数如下:

ed86db1f321d79e4b638618c08d404c4.png

爬楼梯问题递归算法

3、动态规划算法

解决爬楼梯问题采用动态规划算法则可以从1层开始,计算到N层每层能够到达的方法,设计a,b两变量时刻表示到达每一层K前的两层,a是到达k-2层的方法ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值