Java演算法時間複雜度

2021-08-15 12:20:13 字數 744 閱讀 4991

1.時間複雜度最準確的方法是將演算法執行的所有基本操作都計算一遍,但很多情況下這是行不通的

2.時間複雜度表示方法

用n來表示問題的規模

t(n)表示演算法執行的時間量度

基本操作重複執行的次數一般都與問題規模有關係,它是問題規模的乙個函式f(n)

o(n)表示演算法的時間複雜度

所以有公式t(n)=o(f(n)) f(n)是基本操作重複執行的次數

演算法的時間複雜度跟演算法中基本操作的重複執行次數成正比

3.計算時間複雜度的步驟

1.先找出基本操作

2.根據語句確定基本操作的執行次數

3.找出基本操作執行次數的同數量級函式 例如:1,log2n,n,n log2n ,n的平方,n的三次方,2的n次方,n!

4.然後 f(n)等於該數量級

5時間複雜度t(n) = o(f(n))

6.時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。(當n無窮大的時候可以忽略低階項和首項係數)

4.計算技巧:

看看有幾重for迴圈,只有一重則時間複雜度為o(n),二重則為o(n^2),依此類推,如果有二分則為o(logn),二分例如快速冪、二分查詢,如果乙個for迴圈套乙個二分,那麼時間複雜度則為o(nlogn)。

分類最笨的方法就是找按照3中步驟一步步來找基本操作然後相加

演算法時間複雜度空間複雜度

演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...

演算法 時間複雜度 空間複雜度

1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...

演算法複雜度 時間複雜度和空間複雜度

1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數...