- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Course1演算法效率、分析与量级AlgorithmsEfficiency,
Algorithms (Dr. Shi-Jay Chen, National United University) Course 1演算法: 效率、分析與量級Algorithms: Efficiency, Analysis, and Order ▓ Outlines 本章重點 Algorithm Def. 與5個性質 Pseudocode The Importance of Developing Efficient Algorithms Analysis of Algorithms Space complexity Time complexity Asymptotic Notation (漸近式表示) Order ?, ?, ?, o, ? Using a Limit to Determine Order ▓ Algorithm 通常在針對某一問題開發程式時,都會經過下列步驟: Step 1: 明確定義問題 Step 2: 設計演算法,並評估其執行效率 Step 3: 撰寫程式,並加以測試 Example: 計算大學入學考試中,某一單科分數之高標 明確定義:計算所有考生在該科中前25%成績之平均。 演算法: Step 1: 將所有考生英文成績排序 (由高至低) Step 2: 將排名在前面1/4的成績資料相加後,再除以1/4的人數 撰寫程式:... 當我們使用某種技巧解決一個問題時,會產生一種逐步執行的程序(step-by-step procedure)來解決問題,該種逐步執行的程序即稱為解決這個問題的演算法。 Def: 完成特定功能之有限個指令之集合。 需滿足下列5個性質: Input: 外界至少提供?0個輸入 Output: Algorithm至少產生?1個輸出結果 Definiteness (明確): 每個指令必須是Clear and Unambiguous Finiteness (有限性): Algorithm在執行有限個步驟後,必定終止 Effectiveness (有效性): 用紙跟筆即可追蹤Algorithm中執行的過程及結果 Pseudocode (虛擬碼) Example of Pseudocode 問題1: 搜尋問題 範例: 問題演算法: No standard for pseudocode 可以寫得很像英文敘述 也可以寫得很像程式語句 ▓ 發展有效率演算法的重要性 不管電腦變得多快,記憶體變得多便宜,效率(Efficiency)仍然是設計演算法時最重要的考量. 排序問題 (Sorting problem): 將一組資料以遞增 (increasing) 或以遞減 (decreasing)的順序加以排列. 11, 7, 14, 1, 5, 9, 10 ↓sort 1, 5, 7, 9, 10, 11, 14? 欲比較的兩個演算法: Insertion sort (插入排序法): O(n2) Quick sort (快速排序法): O(n log n) 兩個演算法所安裝之系統: Quick Sort: IBM PC/XT (1983年產品,以 Intel 8088 CPU為核心 ) Insertion Sort: VAX8800 (DEC超級迷你電腦) ▓ 演算法的分析 若要得知一個演算法解決一個問題有效率的程度,我們必須分析(Analyze)該演算法。 一個Algorithm的好壞,通常有兩個評估因子: Space (空間): Space Complexity 記憶體複雜度 (Memory Complexity) Time (時間): Time Complexity 時間複雜度 (Time Complexity) 一般來說,對一個演算法進行時間複雜度分析就是求得: 在每個不同的輸入大小 (the size of the input)之下,該演算法所執行的基本運算次數 (how many times some basic operation is done)。 分析方式: 我們要分析一個演算法的效率,是將該演算法在每個不同的輸入大小 之下,所執行的基本運算次數 設定成一個函數 (Function ; 或稱Time function, Complexity function亦可) T(n)。 T(n) 被定義為在大小為n的輸入範例下,某一個演算法所執行的基本運算次數。(the number of times the algorithm does the basic operation for an instance of size n.) 範例 有許多被設計出來的演算法,當輸入資料的情況不同時,所分析出來的執行次數也有所不同。 因此,在分析這些演算法的執行
您可能关注的文档
最近下载
- 企业采购管理蔬菜采购验收标准DOC56页.pdf VIP
- 2025年云南省中考物理试题卷(含答案解析).docx
- 体温测量软件GBT 25000.51-2016自测报告.docx VIP
- WS∕T 225-2024 临床化学检验血液标本的采集与处理.pdf
- 信息系统的使用与维护管理办法.doc VIP
- 环境影响评价报告公示大理州永平县汽车客运站环境影响评价报告表环评报告.doc VIP
- 2022年1月广东自考《07114现代物流学》试题和答案 .pdf VIP
- Unit 1 Happy Holiday(大单元教学设计)英语人教版2025八年级上册.pdf
- 2025年军队文职人员公开招录《管理学》真题库(含答案).pdf VIP
- 网络数据安全检查项及检查方法.docx VIP
文档评论(0)