【第四天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-两种常见的递归算法(持续更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Python数据结构与算法的详细介绍
    • 1.Python中的常用的搜索算法
      • 2.两种常见的递归算法
      • 3.两种详细的递归算法代码
        • 1)斐波那契数列
        • 2)阶乘
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

第一天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

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文简单介绍两种常见的递归算法。

你可能感兴趣的:(python,算法,开发语言)