時間複雜度和空間複雜度的計算

2021-10-08 07:08:18 字數 1423 閱讀 1608

時間複雜度分為以下幾個級別

/**

* 時間複雜度o(1)

* 無論多少次。只要跟輸入次數n沒關係,就是o(1)的時間複雜度。可以說是o(2),o(3).最終都是o(1)的複雜度

*/function calculate(n)

for(var i = 0 ; i < n ;i++)
for(var i = 1; i < n ; i = i*2)
for(var i = 1; i < n ; i++)

}

/**

* 歸併排序

*/public class mergesort

int mid = (left + right) / 2;

mergesort(array, left, mid);

mergesort(array, mid + 1, right);

merge(array, left, mid, right);

}private void merge(int array, int left, int mid, int right) else

}if (leftpos > mid)

} else

}for (int i = 0; i < temp.length; i++)

}@test

public void test() ;

system.out.println(arrays.tostring(array1));

mergesort(array1, 0, array1.length - 1);

system.out.println(arrays.tostring(array1));

int array2 = ;

system.out.println(arrays.tostring(array2));

mergesort(array2, 0, array2.length - 1);

system.out.println(arrays.tostring(array2));

}}

function fib(n)

return fib(n-1)+fib(n-2);

}

long long factorial(unsigned n) {

if (n==1)

return 1;

long long sum = 0;

for (unsigned i=0; i空間複雜度

正常的申請乙個變數空間。無論申請多少個,都是o(1)

申請了乙個長度為n的一維陣列,那他的空間複雜度就是n。

申請了乙個長度為n*n長度的陣列,那他的空間複雜度就是n^2 

時間複雜度和空間複雜度計算

時間複雜度 首先要說的是,時間複雜度的計算並不是計算程式具體執行的時間,而是演算法執行語句的次數。當我們面前有多個演算法時,我們可以通過計算時間複雜度,判斷出哪乙個演算法在具體執行時花費時間最多和最少。常見的時間複雜度有 常數階o 1 對數階o log2 n 線性階o n 線性對數階o n log2...

時間複雜度和空間複雜度的計算

時間複雜度 1.一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f n 因此,演算法的時間複雜度記做 t n o f n 分析 隨著模組n的增大,演算法執行的時間的增長率和 f n 的增長率成正比,所以 f n 越小,演算法的時間複雜度越低,演算法的效率越高。2.在計算時間複雜度的時候...

時間複雜度和空間複雜度的計算

時間複雜度 執行乙個演算法,執行的次數和問題規模之間的函式關係,用o 表示。o 1 常數項,和問題的規模無關。時間複雜度計算規則 1.只保留最高端項 2.不要係數 空間複雜度 執行乙個演算法,需要額外的輔助空間和問題規模之間的函式關係,用o 表示。簡單來說,時間複雜度指的是執行次數,空間複雜度指的是...