Re: [理工] [資結]-時間複雜度

看板Grad-ProbAsk作者 (請多指教!!)時間16年前 (2009/12/03 23:53), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串17/38 (看更多)
※ 引述《NOtWorThy ()》之銘言: : Let T(n) be the running time of Foo(n). Find the order of T. : Foo(int n){ : for i from 1 to n : x = n : while x > 0 do : x = x - i : } : 為什麼是O(nlgn)? : 不是O(n)嗎? 首先我先確認 Foo函數是不是... Foo( int n ) { for i from 1 to n { x = n; while x > 0 do x = x - i; end while } } 所以全部運算次數為: Σ 上高斯(n/i) 故複雜度為 O(Σ 上高斯(n/i) ) = O( Σ(n/i) + n ) = O( nΣ(1/i) +n ) = O( nlnn ) 如果不是你可以 end了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.71.69.211

12/04 02:47, , 1F
請問一下 Σ(1/i)怎麼變成logn的?
12/04 02:47, 1F

12/04 04:06, , 2F
微積分
12/04 04:06, 2F

12/04 10:23, , 3F
調和函數→O(lgn) 用積分可以證明
12/04 10:23, 3F
文章代碼(AID): #1B5zxtzL (Grad-ProbAsk)
討論串 (同標題文章)
文章代碼(AID): #1B5zxtzL (Grad-ProbAsk)