2016-05-01 94 views
-1

我對C#和整體編程(尤其是算法)非常新鮮。
我努力學習算法的基礎,我真的不知道該回答一些問題: enter image description here遇到運行時複雜性困難

我需要回答每個,什麼是複雜性。
現在我已經回答了以下內容:
1) O(2N)
2) O(1)?我猜這裏說不出爲什麼O(1)
3)不能告訴
4)不能告訴
5) O(N^2)?這裏猜測得很好。
我真的很感激任何幫助,然後解釋。

+0

請在每種情況下嘗試循環代碼。作爲* n *的函數,「基本操作」執行多少次? – Nayuki

回答

0
  1. 該循環計數從0到Ñ -1,這是Ñ迭代。每次迭代執行2個基本操作。因此總共執行2 * n *個基本操作。 O(2 * n *)與On)相同,因爲我們無視常數。

  2. 該循環從100減少到1,這是99次迭代。每次迭代執行2個基本操作。因此總共執行了198次基本操作。 O(198)與O(1)相同,因爲我們忽略了常量。

  3. 外環計數從100到底(n/2)-1。如果n < 200,則不執行迭代並且運行時間爲(1)用於循環初始化和測試。否則n≥200,則大約(n/2)-100次迭代被執行。內循環執行n次,每次執行1次基本操作。因此總共約((Ñ/2)-100)×N×1 =(Ñ )/ 2 - 100N基本操作被執行,這是øÑ )。

  4. 第一個循環總共執行n基本操作。第二個和第三個循環合併執行總共基本操作n 。因此共計n + n 基本操作被執行。所述Ñ 術語具有比Ñ術語更高的功率,所以整體的複雜性僅僅是øÑ )。

  5. 外循環執行n次。每個外循環迭代執行內循環n 次。因此,在總,Ñ 基本操作被執行,這是øÑ )。

+1

我真的很感激長期的解釋!我實際上已經解決了4個和5個問題,我已經理解了這個概念。祝你有個好的一天! – N3wbie