遞歸是一種算法技巧,它允許在函數(shù)內(nèi)部調(diào)用自己。遞歸算法通常用于解決分治問(wèn)題,即將大問(wèn)題分解為若干個(gè)小問(wèn)題,然后遞歸地解決這些小問(wèn)題。最后將所有小問(wèn)題的答案合并得到大問(wèn)題的答案。遞歸算法需要確定一個(gè)終止條件,以防止函數(shù)無(wú)限遞歸。

 

遞歸算法幾個(gè)例子:

  1. 斐波那契數(shù)列:遞歸算法可以用來(lái)求斐波那契數(shù)列的第n項(xiàng)。這個(gè)算法的終止條件是n=1或n=2,其余情況則遞歸求解。
  2. 求階乘:遞歸算法可以用來(lái)求n的階乘。這個(gè)算法的終止條件是n=1,其余情況則遞歸求解。
  3. 求解漢諾塔問(wèn)題:遞歸算法可以用來(lái)解決漢諾塔問(wèn)題。這個(gè)算法的終止條件是只剩一個(gè)盤(pán)子,其余情況則遞歸求解。
  4. 二分查找:遞歸算法可以用來(lái)實(shí)現(xiàn)二分查找算法。這個(gè)算法的終止條件是找到目標(biāo)元素或查找區(qū)間為空,其余情況則遞歸求解。
  5. 遍歷二叉樹(shù): 遞歸算法可以用來(lái)遍歷二叉樹(shù)。終止條件是遍歷到葉子節(jié)點(diǎn)。

 

  1、斐波那契數(shù)列:

  def fibonacci(n):

?   ? if n == 1 or n == 2:

? ? ?  ? ?return 1

?   ? else:

? ? ?  ? ?return fibonacci(n-1) + fibonacci(n-2)
斐波那契數(shù)列

  2、求階乘:

  def factorial(n):

?  ? ?if n == 1:

? ? ?   ? return 1

?   ? else:

? ? ?   ? return n * factorial(n-1)

 

 

  3、求解漢諾塔問(wèn)題:

  def hanoi(n, src, dst, tmp):

?  ? ?if n == 1:

? ? ? ?   print(f”move disk {n} from {src} to {dst}”)

?  ? ?else:

? ? ?   ? hanoi(n-1, src, tmp, dst)

? ?   ? ? print(f”move disk {n} from {src} to {dst}”)

? ?   ? ? hanoi(n-1, tmp, dst, src)

 

  4、二分查找:

  def binary_search(arr, target, low, high):

?   ? if low > high:

? ? ?   ? return -1

?  ? ?else:

? ? ?  ? ?mid = (low + high) // 2

? ? ?   ? if arr[mid] == target:

? ? ? ? ?   ? return mid

? ? ? ?   elif arr[mid] < target:

? ? ? ? ?   ? return binary_search(arr, target, mid+1, high)

? ? ?  ? ?else:

? ? ? ? ?  ? ?return binary_search(arr, target, low, mid-1)

 

  5、遍歷二叉樹(shù):

  class Node:

? ?   def __init__(self, val):

? ? ? ?   self.val = val

? ? ?   ? self.left = None

? ? ? ?   self.right = None

 

  def preorder_traversal(root):

?   ? if root is None:

? ? ?   ? return

?   ? print(root.val)

? ?   preorder_traversal(root.left)

?   ? preorder_traversal(root.right)

 

 

★關(guān)于WorkWin公司電腦監(jiān)控軟件★

WorkWin的使命是打造Work用途的Windows 電腦系統(tǒng),有效規(guī)范員工上網(wǎng)行為,讓老板知道員工每天在做什么(監(jiān)控包括屏幕、上網(wǎng)在內(nèi)的一舉一動(dòng)),限制員工不能做什么(禁止網(wǎng)購(gòu)、游戲、優(yōu)盤(pán)等)。

WorkWin基于純軟件設(shè)計(jì),非常容易使用,無(wú)需添加或改動(dòng)任何硬件,使用一臺(tái)管理機(jī)監(jiān)控全部員工機(jī)電腦。歷經(jīng)南京網(wǎng)亞十余年精心打造,此時(shí)此刻每天都有成千上萬(wàn)企業(yè)電腦正在運(yùn)行WorkWin,選擇WorkWin選擇“贏”。

WorkWin介紹

WorkWin監(jiān)控首頁(yè) 短視頻講解 下載免費(fèi)試用版

版權(quán)所有,南京網(wǎng)亞計(jì)算機(jī)有限公司 。本文鏈接地址: 遞歸算法,讀這篇文章或許更有啟發(fā)