亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解釋這個用于查找高度的 python TREE 算法的運行時間解釋這個用于查找高度的

解釋這個用于查找高度的 python TREE 算法的運行時間解釋這個用于查找高度的

慕斯王 2023-08-08 16:53:53
下面我附上了一段代碼。請你們告訴我下面的代碼如何具有O(n)時間的運行時間。def _height2(self, p):     if self.is_leaf(p):          return 0      else:          return 1 + max(self._height2(c) for c in self.children(p))我無法理解它在O(n)時間復雜度中是如何工作的。請幫助我學習這一點。
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

假設n代表樹中的節點數,我們可以觀察到以下情況:

c in self.children(p)永遠不會產生相同的c兩次:除根之外的所有節點在某個時刻都將是該c,并且僅一次。所以這段代碼代表每個節點的恒定時間復雜度。此外,_height2將為所有節點調用一次。對于根,這是初始調用,對于所有其他節點,這是遞歸調用。

所有其他代碼(除了對子節點的迭代和遞歸調用之外)表示每個節點的恒定時間復雜度。

所以我們的時間復雜度是O(n) 。


查看完整回答
反對 回復 2023-08-08
  • 1 回答
  • 0 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號