首页 > 编程语言 > 详细

数据结构与算法(11)—递归

时间:2020-04-03 01:15:00      阅读:87      评论:0      收藏:0      [点我收藏+]
  • 递归问题

将问题分解为更小的相同问题——>用非常简单直接地方式解决——>调用自身。

例子:数列求和问题

1 def listsum(numList):
2     if len(numList) ==1:
3         return numList[0]
4     else:
5         return numList[0] + listsum(numList[1:]) #送进去listsum的是一个list
6 print(listsum([1,2,3,4,5,9]))
  • 递归三定律

1.递归算法必须有一个基本结束条件

2.递归算法必须能改变状态向基本结束条件演进(减小问题规模)

3.递归算法必须调用自身

  • 递归应用

  1.整数任意进制转换

 1 def toStr(n,base):
 2     ‘‘‘
 3     :param n: 要转换的十进制整数
 4     :param base: 转换成的n进制
 5     :return: 转换结果
 6     ‘‘‘
 7     convertString = 0123456789ABCDEF
 8     if n < base:
 9         return convertString[n]
10     else:
11         return toStr(n//base, base) + convertString[n%base]
12 print(toStr(76989,16))

未完待续。。。

数据结构与算法(11)—递归

原文:https://www.cnblogs.com/yeshengCqupt/p/12624064.html

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