再談時間復雜度?初探空間復雜度

1.時間復雜度
大O表示法:T(n) = O(f(n)) 其中f(n)是每行代碼執(zhí)行次數的和

for(i=1; i<=n; ++i)//1個顆粒時間
{
   j = I;//n個顆粒時間
   j++;//n個顆粒時間(兩個加起來就是2n個顆粒時間)
}
//整個加起來就是(1+2n)個顆粒時間

假設每行代碼的執(zhí)行時間都是一樣的,我們用 1顆粒時間 來表示,那么這個例子即: T(n) = (1+2n)*顆粒時間。
從這個結果可以看出,這個算法的耗時是隨著n的變化而變化,因此可以簡化這個算法的時間復雜度為:T(n) = O(n)
「因為大O符號表示法并不是用于來真實代表算法的執(zhí)行時間的,它是用來表示代碼執(zhí)行時間的增長變化趨勢的?!?br> 2.空間復雜度
空間復雜度是對一個算法在運行過程中臨時占用存儲空間大小的一個量度,同樣反映的是一個趨勢。
O(1):如果算法執(zhí)行所需要的臨時空間不隨著某個變量n的大小而變化,即此算法空間復雜度為一個常量,可表示為 O(1)。
O(n):比如new一個數組a[n],這個數據占用的大小為n,在for循環(huán)中也沒有再分配新的空間,所以空間復雜度只看new出的數組即可,為 O(n)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容