本文主要是介绍【Python】Recursion递归 典型问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【Python】Recursion递归 典型问题
这里是一个刚刚上手Python的小白整理的一些题型。大部分题目来自平时上课的例题及习题,在此稍作整理,以供复习之用。
因为平时全英文,有些专有名词不知道中文名,就直接用英文代替啦~
1. 二分法找有序数列指定值
写一个程序binary_search(x, y), 输入一个list x (你可以假设里面的数据已经按升序排列) 然后输入想要查找的数据y,使得函数返回y的index,或者当y不属于x时返回 “Not found”.
def binary_search(x,y):a = 0b = len(x) #如果这里打的是‘len(x)-1’,那么如果要查找最后一个数就会陷入死循环c = (a+b)//2if y not in x:return 'Not found'while x[c] != y:if x[c] < y:a = celif x[c] > y:b = cc = (a+b)//2return c
这个问题如果以问法的话就只能写loop的函数,但其实它也可以用recursion解:
def binary_search(min, max, d, n): '''初始mid=0, max=len(d)'''mid = (min+max)//2if n not in d:return 'Not found'elif d[mid] < n:return binary_search(mid, max, d, n)elif d[mid] > n:return binary_search(min, mid,
这篇关于【Python】Recursion递归 典型问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!