2016-09-28 105 views
0
#include<stdio.h> 
    int main() 
    { 
     int T,i,sum,n; //Here T is the test case 
     scanf("%d",&T); 
     while(T--) 
     { 
      scanf("%d",&n); 
      sum=0; 
      for(i=1;i<=n;i++) 
       sum=sum+i; 
      printf("%d\n",sum); 
     } 
     return 0; 
    } 

如果我給出的測試用例輸入爲T=50n=100。 這是正確的:時間複雜度O(n)=100或時間複雜度O(n)=100*50我的代碼中的時間複雜度是多少

+1

時間複雜度不能在外部方參與未知/不確定的執行時間的情況下嚴格界定 - 在您的情況需要用戶輸入。考慮用戶長時間不提供輸入或根本不提供輸入的情況。 – SomeWittyUsername

回答

1

Big-O分析的概念並不特定於某些值。通常用Big-Oh表示的Time Complexity不包括係數和低階項。在你的代碼中,時間複雜度爲O(T * N)。它永遠不會是O(50 * 100)或O(100)。沒有這樣的符號。任何以恆定時間運行的算法(代碼中的50 * 100)將被表示爲O(1)。

在一個班輪中,時間複雜性永遠不會是一個值,它將被表示爲一個函數,它取決於輸入大小。

另外,有一個清晰的瞭解,我建議你去通過本教程:Time Complexity Analysis by MyCodeSchool

+0

謝謝ans.Really,我已經表達了複雜性O(n)或O(T * n)。 – SKL

+0

@SKL O(T * N)!!但我仍然懷疑你有大O符號和時間複雜度的想法!請通過以下教程:https://m.youtube.com/playlist?list=PL2_aWCzGMAwI9HK8YPVBjElbLbI3ufctn – sbk

相關問題