《八方旅人》團隊ARPG新作《聖塔神記》洩露
阿新 • • 發佈:2022-05-24
概念
演算法的時間複雜度,是一個用於度量一個演算法的運算時間的一個描述,本質是一個函式,根據這個函式能在不用具體的測試資料來測試的情況下,粗略地估計演算法的執行效率,換句話講時間複雜度表示的只是程式碼執行時間隨資料規模增長的變化趨勢。
常用大O來表述,這個函式描述了演算法執行所要時間的增長速度,記作f(n)。演算法需要執行的運算次數(用函式表示)記作T(n)。存在常數 c 和函式 f(n),使得當 n >= c 時 T(n) <= f(n),記作 T(n) = O(f(n)),其中,n代表資料規模也就是輸入的資料。常見排序複雜度如圖:
舉例:
3個分析時間複雜度的方法
最大階法則:忽略式子中的常量,低階,係數,只計算最大階的量級。
說白了就只關注迴圈次數最多的程式碼段。
int fun(int n) { int sum1 = 0; int i = 1; int j = 1; for (; i <= n; ++i) { sum = sum + i; } for (; i <= n; ++i) { for (; i <= n; ++i) { sum + = i+j; } } return sum; }
程式碼本身沒有意義,只是為了舉例,上述程式碼的時間複雜度為O(n²)。
參考:https://blog.csdn.net/qq_41297896/article/details/104223612