Python中常用的递归函数及用法
发布时间:2023-06-23 22:02:04
Python中的函数是可以递归调用的,递归函数是一种特殊的函数,它在函数体内调用自己。递归函数的设计与普通函数的设计类似,需要考虑输入输出的值,但同时需要考虑到递归的终止条件,例如当输入达到某种条件时,不再调用自身而直接返回值。
常用的递归函数包括斐波那契数列,阶乘,二分法查找等。
1. 斐波那契数列
斐波那契数列是一个数列,其中每个数都是前两个数的和。递归函数不断调用自身,直到达到终止条件。例如,计算斐波那契数列的前n个数可以使用以下代码实现:
def fibonacci(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
2. 阶乘
阶乘是一个正整数的连乘积,例如5的阶乘是1\*2\*3\*4\*5=120。递归函数不断调用自身,直到达到终止条件。例如,计算n的阶乘可以使用以下代码实现:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
3. 二分法查找
二分法查找是一种在有序数组中查找特定元素的算法,它将中间值与要查找的元素进行比较,如果中间值小于要查找的元素,则在中间值右侧继续查找,否则在中间值左侧继续查找。递归函数不断调用自身,直到达到终止条件。例如,使用二分法查找一个有序数组中的元素可以使用以下代码实现:
def binary_search(array, target, low, high):
if low > high:
return -1
else:
mid = (low + high) // 2
if array[mid] == target:
return mid
elif array[mid] < target:
return binary_search(array, target, mid+1, high)
else:
return binary_search(array, target, low, mid-1)
