資料結構中的時間複雜度怎麼算啊?看不懂啊,有沒有具體的公式
- 2021-07-19
看迴圈的次數,比如for(k=1;k<=n;k*=2)
{for(j=1;j<=n;j++)。。。。}
這種巢狀迴圈;首先第一個 k=1時候如果小於每次都是乘以2然後與n進行比較,那反過來只要進行log(2)n次,因為求的就是2的多少次方等於或者大於n,第二個的話就是1一直到n然後就是n。然後這個又是巢狀迴圈所以相乘就好了,這個時間複雜度度就是o(nlog(2)n)。這種主要是理解每一層迴圈的次數,然後巢狀就相乘,不是巢狀就取最大的那個迴圈。
只能看程式碼,主要是for迴圈,一個for是n,兩個for是n平方,
時間複雜度只是一個概念,沒有計算公式
求時間複雜度,其實是在統計基本操作步驟的執行次數。
“基本操作步驟”指的是加減乘除這種。比如有一個for迴圈,執行N次,每次做一個加法一個乘法,那麼總的操作步驟數就是2N,用大O記號就是O(N)。
原理就是這麼簡單,計數而已。
實際做題的時候,看清楚for迴圈的巢狀層數,就差不離。
上一篇:地瓜粉和生粉有什麼區別???
下一篇:去腥味的中藥有那些