网站大量收购独家精品文档,联系QQ:2885784924

物件导向资料结构.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
物件导向资料结构

Analyzing Algorithms Based on: 物件導向資料結構 — 使用Java語言, 江振瑞 著, 松崗圖書公司, 2005. Introduction to the Design and Analysis of Algorithms -- A strategic approach, 2E, R.C.T. Lee et. al., NcGraw Hill, 2005. Introduction to Algorithms, Cormen et. al., MIT Press. Analyzing algorithms Analyzing an algorithm has come to mean predicting the resources that the algorithm requires. Resources: memory, communication, bandwidth, logic gate, time. We usually assume that the algorithm is performed on a processor with RAM Analyzing algorithms Complexity 一般我們使用 時間複雜度(time complexity) 空間複雜度(space complexity) 來評估演算法的執行時間與所佔用記憶體空間, 這些複雜度愈低,則表示演算法愈好。 我們比較關注time complexity! Three Cases 演算法的時間複雜度分析分為以下三種: 最佳狀況(best case)時間複雜度:考慮演算法執行時所需要的最少執行步驟數。 最差狀況(worst case)時間複雜度:考慮演算法執行時所需要的最多執行步驟數。 平均狀況(average case)時間複雜度:考慮所有可能狀況下演算法的平均執行步驟數。 Worst-case and average-case analysis Usually, we concentrate on finding only on the worst-case running time Reason: ?It is an upper bound on the running time ?The worst case occurs fair often The average case is often as bad as the worst case. For example, the insertion sort. Again, quadratic function. An Alg. for Testing Primes 我們可以看出,輸入大於2的任意正整數n,若n是質數,則演算法Prime1需要執行整數除法求餘數(n%i)動作與整數比較((n%i)=0)動作n-2次之後,才可以知道n是質數。另外,若n不是質值,則演算法Prime1只要執行整數除法求餘數與整數比較動作1次,就可以知道n不是質數了。 Another Alg. for Testing Primes Analysis of Prime1 Alg. 因此,我們很容易看出來,在最壞狀況(worst case)下,演算法Prime1的執行步驟次數與輸入的正整數n成正比關係;而在最佳狀況(best case)下,演算法Prime1的執行步驟次數為與輸入的正整數n無關的某個常數。也就是說,演算法Prime1具有線性的(linear) 最差狀況時間複雜度(正比關係即為線性關係)與常數的(constant) 最佳狀況時間複雜度。 Analysis of Prime2 Alg. 我們也很容易看出來,在最壞狀況(worst case)下,演算法Prime2的執行步驟次數相依於輸入的正整數n的平方根值;而在最佳狀況(best case)下,演算法Prime2的執行步驟次數為與輸入的正整數n無關的某個常數。也就是說,演算法Prime2具有平方根的(square root) 最差狀況時間複雜度與常數的(constant) 最佳狀況時間複雜度。 Asymptotic Notation 一般而言,我們使用所謂的趨近記號(asymptotic notation)來分析演算法的複雜度,趨近記號考慮的是演算法在處理資料範圍趨近於無窮大時的狀況。 在演算法的資料處理範圍(或處理資料量)較小時,不管是有效率的(執行步驟數較少)或是沒有效率的(執行步驟數較多)演算法通常都可以很快的執行完畢,在這個狀況下,演算法的時間複雜度好壞的差距比較不明顯。 當演算法處理資料範圍(或處理資料量)相當大時,有效率的演算法通常還是可以很快的結束;而一些極度沒有效率的演算法則

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档