演算法入門基礎(時間複雜度)(一)

2021-10-13 18:58:39 字數 1299 閱讀 4374

有窮性、確定性、可行性、有輸入、有輸出

正確性、可讀性、健壯性的bug:寫出**很少有bug,而且系統比較穩定、高效率與低儲存: 記憶體+cpu、很少堆疊記憶體oom、記憶體占用最小,cpu占用最小,運算速度最快。

時間複雜度::執行乙個程式所花費的時間。

空間複雜度:執行程式所需要的記憶體 oom

大o表示法。例如 o(n),o(nlogn);o(1),o(n),o(nlogn),o(n^2),o(n+1),o(logn),o(n!)

大小比較:o(1)>o(logn)>o(n)>o(nlogn)>o(n2)>o(nx)

public

class

bigo

int n = integer.max_value;

//表示n是未知

int i =1;

for(

int j =

0; j < n ;j++)}

while

( i <= n)

//i的值:2 4 8 16 32,=》2^0,2^1,2^2,2^3,.....2^n

//===> 2^x=n =>求出x就是我們執行的次數 => x=log2n =>計算機忽略掉常數 => x = logn =>o(logn)

//二分查詢 為什麼是logn的演算法?

//1~100 找69這個數

//50:(1+100)/2 = 50

for(i =

0; i < n;i++

)for

(i =

0; i < n;i++)}

/* * 外面的迴圈次數是確定的 o(n) n次,1 2 3 4 。。。n

* * i=n 執行1次

* i=n-1 執行2次

* .* .

* .* i=1 執行n次

* * 1,2,3 …… n次 最後裡面這層要執行多少次?1+2+3+……+n=n*(n+1)/2 =>

* */

for(i =

0; i < n;i++)}

/*int data[100];

list<>; list.add();

map put

set add

queue*/

}}

我是小白弟弟,乙個在網際網路行業的小白,立志成為一名架構師

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

1空間複雜度 演算法的空間效能分析 1 演算法的空間效能的影響因素 指令空間 由機器決定 資料空間 常量,變數占用空間 環境棧空間 2 度量方法 單個常量,變數 由機器和編譯器規定的型別儲存決定。陣列變數 所佔空間等於陣列大小乘以單個陣列元素所佔的空間。結構變數 所佔空間等於各個成員所佔空間的累加 ...

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

演算法複雜度分為時間複雜度和空間複雜度。其作用 時間複雜度是指執行演算法所需要的計算工作量 而空間複雜度是指執行這個演算法所需要的記憶體空間。演算法的複雜性體現在執行該演算法時的計算機所需資源的多少上,計算機資源最重要的是時間和空間 即暫存器 資源,因此複雜度分為時間和空間複雜度 簡單來說,時間複雜...

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

演算法複雜度分為時間複雜度和空間複雜度。其作用 時間複雜度是指執行演算法所需要的計算工作量 而空間複雜度是指執行這個演算法所需要的記憶體空間。演算法的複雜性體現在執行該演算法時的計算機所需資源的多少上,計算機資源最重要的是時間和空間 即暫存器 資源,因此複雜度分為時間和空間複雜度 簡單來說,時間複雜...