時(shí)間復(fù)雜度和空間復(fù)雜度
O表達(dá)的是 它的復(fù)雜度是n的怎樣一個(gè)函數(shù)
時(shí)間復(fù)雜度 :
公式 : T(n) = O( f(n) ) f(n) 表示每行代碼執(zhí)行次數(shù)之和蛉幸,而 O 表示正比例關(guān)系
1.O(1) : 常數(shù)復(fù)雜度
2.O(log n) 對(duì)數(shù)復(fù)雜度 如二分查找
3.O(n) 線性時(shí)間復(fù)雜度 如二叉樹(shù)遍歷奕纫,前序提陶,中序匹层,后續(xù)
4.O(n^2) 平方 冒泡排序
5.O(n^3) 立方
6.O(2^n) 指數(shù)
7.O(n!) 階乘
1.O1:無(wú)論代碼執(zhí)行了多少行,只要是沒(méi)有循環(huán)等復(fù)雜結(jié)構(gòu)撑柔,那這個(gè)代碼的時(shí)間復(fù)雜度就都是O(1)
2.O(n): for循環(huán)里面會(huì)執(zhí)行n遍代碼,消耗的時(shí)間隨著n的變化而變化乏冀。所以用O(n)標(biāo)識(shí)
3.O(n^2):O(n)的代碼在循環(huán)一遍,兩個(gè)for
空間復(fù)雜度
1.如果代碼里又?jǐn)?shù)組辆沦,數(shù)組長(zhǎng)度就是空間復(fù)雜度。一維數(shù)組空間復(fù)雜度為傳入元素的個(gè)數(shù)妒茬。如果是二維數(shù)組,數(shù)組長(zhǎng)度為n平方乍钻,空間復(fù)雜度為n平方铭腕。
2.如果是遞歸,遞歸最深深度累舷,就是空間復(fù)雜度。