黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 遞歸函數的時間復雜度

遞歸函數的時間復雜度

更新時間:2022-10-31 09:54:28 來源:動力節點 瀏覽928次

如何找到遞歸函數的時間復雜度?

讓我們首先了解求時間復雜度的基本概念。我們假設程序中的每條語句都需要一個單位的時間來執行。

讓我給出那個背后的想法。假設有一些書存放在一個地方,您必須移動這本書并將其放在架子或架子上。需要多少時間?也許半秒,四分之一秒,也許如果有人工作得很慢,可能需要一秒鐘才能把一本書放在那里。時間因人而異。所以,我們不說秒或毫秒,我們說一個時間單位。如果以貨幣為例,一美元,一盧比,一英鎊。我們說一個,但市場價值可能會有所不同。所以,我們說一美元或一單位貨幣。

同樣,我們假設每條語句都需要一個單位時間。如果該語句重復多次,那么我們需要計算它執行多少次的頻率。這足以分析我們的功能。

查找遞歸函數的時間復雜度的示例:

我們將使用以下函數。也就是說,我們將計算以下遞歸函數的時間復雜度。

現在,讓我們看看上面的函數(fun1)在做什么。它什么都不做,只是打印。它只是打印 n 的值。

打印需要多少時間?

打印需要一個單位的時間。

printf 在那里寫了多少次?

那里只寫了一次 printf。但這是一個遞歸函數。所以,它一次又一次地呼喚自己。

由于它是一個遞歸函數,讓我們找出 printf 函數執行了多少次。正如我們在遞歸工作原理一文中已經討論過的,我們可以使用跟蹤樹或遞歸樹來找出這一點。

正如您在上面的跟蹤樹中看到的,它首先打印值 3,然后打印 2,然后打印值 1。這意味著 printf 語句執行了 3 次。因此,當 n 值為 3 時,此遞歸函數將需要 3 個單位的時間來執行。如果我們將 n 值設為 5,那么執行此遞歸函數將需要 5 個單位的時間。

所以,我們可以說對于 n 它將花費 n 個單位的時間。回到這個例子,如果我們必須在書架上放一本書。你需要一個單位的時間,10本書你需要10個單位的時間。因此,對于 n 本書,您將獲得 n 個時間單位。您需要記住的最重要的一點是時間取決于書籍的數量。

時間可以表示為 n 的順序,即O(n)。花費的時間是n的順序。

使用遞歸關系的時間復雜度:

還有另一種方法可以找到時間復雜度,即使用遞歸關系。讓我們看看如何編寫遞歸關系以及如何解決它以找到遞歸函數的時間復雜度。現在,讓我們使用遞歸關系計算以下遞歸函數的時間復雜度。

我們假設上述函數花費的時間是 T(n),其中 T 代表時間。如果 fun1() 花費的時間是 T(n),那么總時間應該是該函數內的語句所花費的所有時間的總和。

那么,讓我們看一下聲明。每條語句都需要一個單位的時間來執行。請參閱函數內部有一個條件語句(if (n > 0))。執行需要多少時間,只需執行一個單位時間。然后是一個printf語句,這也需要一個單位時間。

然后那里多了一個函數調用語句(fun1(n-1)),需要多少時間,也需要一個單位時間。不,這是不正確的。它不會花費一個單位的時間。這是一個函數調用。它應該是該功能所花費的總時間。這不僅僅是一個正常的說法。它會再次調用自己。所以,在那之后還有更多的東西。那么,我們需要知道該函數調用需要多少時間?

讓我們仔細看看。我們所說的 fun1(int n) 函數調用,總時間是 T(n)。那么這個fun1(n-1)和fun1(int n)類似,這里是n-1。所以,這個函數所花費的總時間將是 T(n-1) 時間。那么什么是T(n)?正如我們所說的聲明所花費的所有時間的總和。因此,讓我們取T(n) =T(n-1)+2的總和。為了更好地理解,請看下圖。

因此,當n>0時,遞歸關系為T(n)=T(n-1 )+ 2。當n=0時會發生什么,它只會檢查條件,它不會進入其中并會出來。只是檢查條件,所以需要一個單位的時間。為了更好地理解,請看下圖。

所以,這是由 fun1 函數形成的遞歸。因此,遞歸函數的時間復雜度可以用遞歸關系的形式表示。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲欧美专区 | 中国精品久久 | 在线观看日韩www视频免费 | 一本一道波多野结衣一区二区 | 日韩在线视频播放 | 亚洲欧美日韩一区二区在线观看 | 在线免费视频你懂的 | 久久精品视频3 | 亚洲高清影院 | 99re热久久这里只有精品6 | 色视频免费网站 | 成人网免费 | 99爱在线精品视频免费观看9 | 夜夜嗨视频网 | 日日a.v拍夜夜添久久免费 | 深夜国产成人福利在线观看女同 | 热久久伊人 | 青青草国产免费久久久91 | 欧洲一级视频 | 在线亚洲欧洲国产综合444 | 欧美一级h | 天天干天天爽天天操 | 欧美成人鲁丝片在线观看 | 欧美特黄视频在线观看 | 狠狠狠很橹影院 | 久久黄色网址 | 成人动漫在线视频 | 青青草国产三级精品三级 | 在线免费观看黄色网址 | 在线看一区二区 | 欧美性xxx久久 | 日韩欧美网站 | 欧美日韩片| 日日干天天干 | 国产偷久久| 中文字幕日韩欧美一区二区三区 | 黄色三级视频网站 | 日韩成人在线观看视频 | 亚洲成人一级 | 欧美日韩中文一区二区三区 | 成人欧美一区二区三区黑人免费 |