簡體   English   中英

這個 function O(n^2logn) 的時間復雜度?

[英]Time complexity of this function O(n^2logn)?

我試圖計算出這個 function 的時間復雜度:偽代碼

def inc(m):
  if m>12:
     return;
  for i in range(1,m):
     //some code
  mergeSort(array,0,n-1)
  for j in range(1,m):
     //some code
  inc(m+=1);

時間復雜度是O(n^2logN)嗎? 如您所見,此示例是遞歸 function 調用不同的遞歸 function 進行排序並在最后調用它本身。 我不知道 for 循環是否影響以及調用另一個遞歸 function 作為合並排序。

此代碼的時間復雜度為 O(m*n logn),因為 m 是不超過 12 的常數,我們可以說復雜度受歸並排序復雜度 O(nlogn) 的限制。 在每次遞歸調用時,function 執行兩個循環,一個在合並排序之前,另一個在合並排序之后,它們的復雜度都是 O(m)。 歸並排序的時間復雜度為 O(nlog n)。

因此,總時間復雜度為 m * (2m + n * log n) 即 O(m * (m + n * log n))= O(m^2) + O(mnlogn)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM