效能分析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
效能分析

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 演算法導論,探矽工作室 遞迴堆疊空間 使用遞迴函式(recursive function)時,編譯器一般的做法 每呼叫一次遞迴函式時,就將函式的返回位址(return address)、參數(function parameters)和區域變數(local variables)儲存一份在環境堆疊中 遞迴有幾層,其需儲存在環境堆疊中的返回位址、函式參數和區域變數就有多少份 遞迴函式所需的堆疊空間也稱為遞迴堆疊空間 演算法導論,探矽工作室 計算階層(n!)的範例 遞迴方式 int factorial(int n){ if(n = 1) return 1; return n*factorial(n-1); } 迴圈方式(疊代) int factorial(int n){ int i, num=1; if(n 1){ for(i = 2; i = n; i++){ num = num * i; } } return num; } 演算法導論,探矽工作室 遞迴函式展開之層次 演算法導論,探矽工作室 遞迴公式 遞迴結構與遞迴公式 取代方法(substitution method) 支配方法(master method) 演算法導論,探矽工作室 遞迴結構(1/2) 解決一個問題時,透過一次又一次重複呼叫自己來處理相關的子問題 遵循分割處理(divide and conquer,又稱各個擊破)的理念 將問題分割成數個子問題,子問題與原本問題相似但是較小 重複解決子問題 把這些解答合併來建立成原本問題的解答 演算法導論,探矽工作室 遞迴結構(2/2) 每一層遞迴中包含的步驟 將問題分割(divide)成數個子問題 重複處理(conquer)這些子問題,如果子問題夠小,就用直接計算的方式來解決子問題 將子問題的解答合併(combine)成為原來問題的解答 演算法使用遞迴結構時,他的執行時間通常可以使用一個遞迴公式來描述 演算法導論,探矽工作室 遞迴公式 遞迴公式一個方程式或是不等式,可用來描述一個函式與其數值之間的關係 範例 T(n)=aT(n/b)+f(n),a≧1、b1,f(n)是指定函數,如O(1)、logn、n、n2等 如何分析遞迴公式? 取代方法 支配方法 演算法導論,探矽工作室 取代方法 就是用重複替代遞迴函數的方式 將遞迴公式一層層地展開、取代,來計算它實際的步驟次數 適用於較單純的遞迴公式 範例 tRsum(n)=2+tRsum(n-1), n0且tRsum(0)=2 取代步驟 tRsum(n)=2+tRsum(n-1) =2+2+tRsum(n-2) =4+tRsum(n-2) =..... =2n+ tRsum(0) =2(n+1), n=0 演算法導論,探矽工作室 支配方法 假設分割處理演算法的整體複雜度是 T(n)而且第一步分割(divide)與第三步合併(combine)所需要的時間複雜度加起來是 f(n),那麼T(n)滿足下列的遞迴關係: T(n)=aT(n/b)+f(n) 其中T(1)=Θ(1)是很合理的假設,表示只有一筆輸入資料,而演算法需要一個常數時間來解它 演算法導論,探矽工作室 範例: 為方便起見,假設n=4k,k是一個整數,展開遞迴式: 相對應的遞迴樹(recursion tree)表示: 演算法導論,探矽工作室 第一次遞迴 演算法導論,探矽工作室 第二次遞迴 演算法導論,探矽工作室 最後一次遞迴 演算法導論,探矽工作室 推導結果 演算法導論,探矽工作室 考慮一般的狀況 同樣地,為了方便起見,我們假設 n=bk,其中k是一個整數 此遞迴關係式的展開與推導: 演算法導論,探矽工作室 由遞迴公式T(n)=aT(n/b)+f(n)所產生的遞迴樹,以及其步驟計次界線關係 演算法導論,探矽工作室 推導結果 支配理論(master theorem) 演算法導論,探矽工作室 支配理論(1/2) 令a ≥ 1且b ≥ 1是兩個常數,f(n)是一個函數,並且假設T(n)滿足下列的遞迴關係 T(n)=aT(n/b)+f(n) 1. 如果 ,其中ε是一個大於0的常數,則 2. 如果 ,則 3. 如果 ,其中ε是一個大於0的常數,如果當n夠大時,

文档评论(0)

daoqqzhuan3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档