提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
第一天Python数据结构与算法的详细介绍
第二天五种常见的排序算法
第三天两种常见的搜索算法
第四天两种常见的递归算法
第五天一种常见的动态规划算法
第六天一种常见的贪心算法
第七天一种常见的分治算法
第八天一种常见的回溯算法
第九天六种常见的图论算法
第十天两种常见的字符串算法
提示:以下是本篇文章正文内容,下面案例可供参考
一、Python数据结构与算法的详细介绍
1.Python中的常用的搜索算法
以下是Python中的一些常用算法:
2.两种常见的递归算法
递归算法:函数调用自身来解决问题的编程技巧。递归通常用于分治法、树和图的遍历等。
- 斐波那契数列:通过递归调用自身来计算斐波那契数列的第n项。时间复杂度为O(2^n),空间复杂度为O(n)(递归栈空间)。
- 阶乘:通过递归调用自身来计算一个数的阶乘。时间复杂度为O(n),空间复杂度为O(n)(递归栈空间)。
3.两种详细的递归算法代码
1)斐波那契数列
def fibonacci(n):
# 基本情况:当n为0时返回0,当n为1时返回1
if n <= 0:
return 0
elif n == 1:
return 1
# 递归情况:F(n) = F(n-1) + F(n-2)
else:
return fibonacci(n-1) + fibonacci(n-2)
# 测试代码
if __name__ == "__main__":
# 计算斐波那契数列的第10项
result = fibonacci(10)
print(f"Fibonacci(10) = {result}") # 输出55
2)阶乘
def factorial(n):
# 基本情况:当n为0时返回1
if n == 0:
return 1
# 递归情况:n! = n * (n-1)!
else:
return n * factorial(n-1)
# 测试代码
if __name__ == "__main__":
# 计算5的阶乘
result = factorial(5)
print(f"Factorial(5) = {result}") # 输出120
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文简单介绍两种常见的递归算法。