python的遞迴

來源:互聯網
上載者:User

標籤:lse   有一個   二分尋找   如何   判斷   image   操作   分享   col   

今天,我們要講的內容是關於python的遞迴。

 

什麼是遞迴?看這個名字,你也許能夠猜出個大概。關於遞迴,我們有一個很經典的應用,就是我們以前高中一些數學題目中的累乘,像n *(n-1)* (n-2) * ... * 1。在這裡,如果要讓你計算最終的結果,你可能會想到用for迴圈來實現,但是,我們在這裡可以稍微進行最佳化一下,比如像這個例子一樣:

#for迴圈def LSF(n):  result = n  for i in range(1,n):      result *= i  return result#遞迴def LSF(n)  if n == 1:      return 1  else:      return  n * LSF(n - 1)

我們來看一下上面這兩段代碼,第一段是用for迴圈實現的,第二段是用遞迴實現的。我們看一下這兩段代碼有什麼區別,先來看for迴圈,簡單的定義了一個區間,然後在這個區間內讓每一個數逐漸相乘,就得到了我們要的結果了。重點看一下遞迴這個操作,先是判斷n是否為1,如果為1的話,就直接得到結果,因為n=1,我們用接下來的代碼的話,最總結果是0,這樣的結果並不準確,然後我們排除1的情況,計算接下來 的值,直接運算n *(n-1)。這樣的代碼效率可能沒有for迴圈高,但是,可讀性卻好很多。

最後,我們來講一下什麼是二分尋找,所謂的二分尋找就是一種尋找某個資料的高效手段。比如我們要在0到100內找到81這個數,我們先把0到100對半分,發現81在50到100之間我們再進行一次對半分,發現81在75到100之間,這樣一來,我們經過幾次對半分,就找到我們要的數81了,這樣的效率要比我們從一數到一百要高得多,具體如何用代碼實現,我們明天再講。

 好的,今天的內容就講到這裡啦~

(文章圖片若有侵權,請聯絡作者刪除)

python的遞迴

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.