12.07.2015 Views

Amortized Analysis

Amortized Analysis

Amortized Analysis

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

UVA 136Ugly Numbers組 員 :98102011 教 育 四 陳 柏 源99703001 資 科 三 黃 廷 瑋99703031 資 科 三 曾 偉 綱


2工 作 分 配 陳 柏 源 : PPT 製 作 、 資 料 蒐 集 、 上 台 報 告 黃 廷 瑋 : 程 式 撰 寫 (Meth0d1 )、 資 料 蒐 集 、 複 雜 度 分 析 曾 偉 綱 : 程 式 撰 寫 (Meth0d2 ) 、 資 料 蒐 集 、 複 雜 度 分 析


3目 錄 1. 題 目 簡 介 2. 解 決 方 法 ( 構 想 ,C ++ code ) 3. 演 算 法 分 析 4. 長 條 圖 時 間 分 析


2Ugly numbers are numbers whose only prime factorsare 2, 3 or 5.The sequence :1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...Output:題 目 簡 介The 1500'th ugly number is .


5Method 1 Main idea : 假 設 算 第 N 項 , 我 們 從 前 面 這 N-1 項 可 以 得 出 :「 最 小 乘 2 會 大 於 第 N-1 項 的 那 項 」 以 及 「 最 小乘 3 會 大 於 第 N-1 項 的 那 項 」 還 有 「 最 小 乘 5 會 大於 第 N-1 項 的 那 項 」。 找 出 來 後 比 較 他 們 三 個 的 大 小 , 最 小 的 就 是 第N 項 。


6Method 1(continued) 接 著 要 找 N+1 項 , 再 從 前 N 項 中 一 樣 找 出 :再 找 「 最 小 乘 2 會 大 於 第 N 項 的 那 項 」,你 可 以 從 「 最 小 乘 2 會 大 於 第 N-1 項 的 那 項 」 開始 往 後 搜 , 就 不 用 再 從 第 0 項 開 始 搜 。 找 「 最 小 乘 3 會 大 於 第 N 項 的 那 項 」 還 有 「 最 小乘 5 會 大 於 第 N 項 的 那 項 」 也 可 以 比 照 辦 理 、 以此 類 推 。


7Main CODEfor( int i = 1 ; i < 1500 ; i++ ){for( ; n2 < i ; n2++ )if( ugly_number[n2]*2 > ugly_number[i-1] ) break;for( ; n3 < i ; n3++ )if( ugly_number[n3]*3 > ugly_number[i-1] ) break;for( ; n5 < i ; n5++ )if( ugly_number[n5]*5 > ugly_number[i-1] ) break;C1*nC2* n∗(n−1)2C3* n∗(n−1)2C4* n∗(n−1)2ugly_number[i] = min( ugly_number[n2]*2, ugly_number[n3]*3 );ugly_number[i] = min( ugly_number[i], ugly_number[n5]*5 );}C5*nC6*nprintf( "The 1500'th ugly number is %d.\n", ugly_number[1499] );


8Time complexity Time complexity: O(n^2) Space complexity:O(n)


9Method 2 Main idea : 使 用 一 個 While loop 利 用 if else判 斷 式 , 將 每 一 個 數 字 填 入 陣列 , 直 到 掃 完 到 第 N 筆 資 料 為止


10Main CODEwhile (i


11Main CODE(Continued)else if(R


12Time complexity Time complexity: O(n) Space complexity:O(n)


13Line Char <strong>Analysis</strong>0.00012Ugly number0.00010.000080.000060.000040.000020100th 500th 1500thMethod 1 Method 2


14Running on UVA

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!