1樓:匿名使用者
o(n^2)
因為子層k迴圈次數為n,時間複雜度為n
父層j迴圈次數為n,故時間複雜度為n
總體時間複雜度為an*n+b*n+c=o(n*n)=o(n^2)
2樓:匿名使用者
o(n*log(n))
外迴圈由於j是以copy2倍為速度指數級增長的,所以在o(log(n))的時間結束(沒有內迴圈時)。
而每次外迴圈執行一次,都完整的執行了內迴圈。
內迴圈完整執行一次需要時間o(n)
所以綜合起來便是每次外迴圈中內迴圈執行的時間乘以外迴圈所用的時間,即o(n*log(n))
下面程式段的時間複雜度是 ? i=1; while(i<=n) i=i*2
3樓:仁昌居士
i=1; while(i<=n) i=i*2的時間複雜度copyo(log2n)。
整段**語句,中迴圈體只有乙個while(i<=n),執行的次數是:
i = 1,i = 1*2=2,判斷2是否小於等於n,是則繼續迴圈,否則跳出迴圈。
i =2,i = 2*2=4,判斷4是否小於等於n,是則繼續迴圈,否則跳出迴圈。
i =4 ,i = 4*2=8,判斷8是否小於等於n,是則繼續迴圈,否則跳出迴圈。
根據規律發現,迴圈次數由log2n決定,所以複雜度是o(log2n)。
4樓:匿名使用者
假設迴圈次數是x。
i = 1, 2, 4, 8, 16 ,i = 2^x條件是i <= n
2^x <= n
所以x <= log2n 一共執行迴圈體log2n次,所以複雜度是o(log2n)
5樓:匿名使用者
迴圈退出的條件為i > n
設第k次迴圈後退出迴圈
於是2^k > n
因此k > log2n 以2為底的對數,k的實際值為log2n上取整
因此時間複雜度為o(log2n)
分析下面程式段的時間複雜度
6樓:翲燚
三層for迴圈,時間複雜度為o(n^3)
求n!的時間複雜度(只計算一下下面程式的就好)
7樓:聽不清啊
這時間複雜來度就是o(n)。自
這只是用來初學遞迴時用來幫
bai助理解用的。一du般使用時,zhi能用迴圈解決的dao就不用遞迴。
只要用乙個迴圈就可以了的。
long fun(int n)
關於時間複雜度的計算,如何計算時間複雜度?
給我十分,我告訴你答案。請問樓主答案,我也不會。如何計算時間複雜度?一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f n 因此,演算法的時間複雜度記做 t n o f n 隨著模組n的增大,演算法執行的時間的增長率和f n 的增長率成正比,所以f n 越小,演算法的時間複雜度越低,演...
演算法的空間複雜度,時間複雜度,有窮性分別是什麼意思
通俗來說 空間複雜度是指運算過程中佔用的記憶體和輸入的漸進關係。時間複雜度是指運算過程中使用的時間和輸入的漸進關係。有窮性是指在有限時間內可以結束運算。演算法的時間複雜度與空間複雜度各是什麼意思 是說明乙個程式根據其資料n的規模大小 所使用的大致時間和空間說白了 就是表示 如果隨著n的增長 時間或空...
某演算法的時間複雜度為On,表明該演算法的
選c說明演算法的時間複雜度tn小於等於 c為比例常數 即tn o n 時間複雜度是問題規模n的函式。乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t n t n o n n 的意思就是演算法大概...