時間複雜度和空間複雜度

2021-10-01 04:59:47 字數 560 閱讀 7831

1.首先,時間複雜度與空間複雜度是對立的,時間複雜度越低,空間複雜度就越高。我們在程式中通常採用以空間換時間的方式來提高專案執行效率。

先給大家說乙個最常見的簡單的,時間複雜度是以n為變數,程式的執行次數隨n的變化而變化。

for(int i=0;i}

當只有一層for迴圈的時候時間複雜度就是o(n)如果兩層for迴圈如下所示:

for(int i=0;i}

那麼它時間間複雜度就是o(n2),同理三層for迴圈就是o(n3)

常數時間複雜度

int i=0;

i=(i+n)*n;

system.out.println(「我只執行一次」+i);

當我們的語句是一句一句向下執行時,執行多少語句,時間複雜度都是o(1)

3.對數階

接著看如下**:

int number=1;

while(number可以看出上面的**,隨著number每次乘以2後,都會越來越接近n,當number不小於n時就會退出迴圈。假設迴圈的次數為x,則由2^x=n得出x=log₂n,因此得出這個演算法的時間複雜度為o(logn)。

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

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

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

演算法複雜度 時間複雜度和空間複雜度 關鍵字 演算法複雜度 時間複雜度 空間複雜度 1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時 間多,哪個演算法花費的時間少就可以...

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

演算法的時間複雜度是指執行演算法所需要的計算工作量。n稱為問題的規模,當n不斷變化時,時間頻度t n 也會不斷變化。但有時我們想知道它變化時呈現什麼規律。為此,我們引入時間複雜度概念。一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t n 表示,若有某個輔助函式f n 存在乙個正...