- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
演算法导论
* 由上而下設計法範例 以「學生資料處理系統」為例 依照學生資料處理系統的邏輯特性將問題切割成處理「基本資料」及「成績資料」二個較小的問題 再將處理「成績資料」同樣依照邏輯特性再往下細分成處理「操行成績」及「學業成績」二種 程式設計師便可依此設計原則所得之結果來設計程式 * 由下而上的設計法 由下而上的設計法是指由問題中最容易編寫程式的單元開始設計程式,然後逐級往上層組合成較完整的程式 同樣以「學生資料處理系統」為例,先設計完成「操行成績」及「學業成績」二個最下層(第三層)的程式後,將此二個程式合併成「成績資料」程式。然後再設計完成第二層「基本資料」程式,最後合併第二層的「基本資料」及「成績資料」二個程式成為最上層的「學生資料處理系統」 計算機概論 第四章 演算法導論 陳維魁/陳邦治 旗標出版社 * 本章重點 程式製作的過程為程式設計師會先根據使用者的需求(user demand)來設計演算法,然後再挑選一個適合的程式語言,根據程式語言的語法及設計好的演算法來撰寫(coding)程式 程式設計與演算法之間的關係十分密切 本章將介紹演算法的相關知識 * 大綱 演算法基本觀念 演算法分析 設計程式的方法 發展程式的方法 * * * 演算法基本觀念 演算法(algorithm)是指是有限數目指令的集合,利用這群指令撰寫的程式可以完成某個特定的工作 * 演算法基本條件 輸入(input)條件 0個或0個以上的輸入 輸出(output)條件 至少應有1個輸出 明確性(definiteness)條件 定義必須明確不可模擬兩可(ambiguous)。 有限性(finiteness) 條件 不可存在無窮迴路(infinite loop),也就是說必須在有限步驟內完作 有效性(effectiveness)條件 執行的結果應是正確的 * 演算法基本條件(cont.) 任何一種計算方法必須滿足以上五項條件才符合演算法的要求 如果某一種計算方法執行的結果是錯誤的,就算該計算方法滿足輸入、輸出、明確性及有限性四項條件而且或許執行的速度也很快,但是一個錯誤的計算方法就不能算是演算法 * 實例:一個演算法的例子 演算法 程式段 * 演算法分析 由於程式是根據演算法撰寫而成,因此程式與其對應的演算法關係必定非常密切 若演算法設計得宜,則程式的執行效率及記憶體空間的使用情形都會有處於較理想的狀況 分析或評估程式效能的方法 「程式執行所需的時間」(time) 「程式執行所需的記憶體空間」(space) * 影響程式執行時間的因素 輸入資料量的數量 採用的演算法之時間複雜度(Time Complexity) 編譯器的優劣 計算機的執行速度 * 漸進符號(asymptotic symbols) 漸進符號常被用來分析演算法的時間複雜度,雖然此法無法精確地表達演算法實際執行次數,但因可利用簡單的近似值表達演算法所需的時間複雜度,因此被廣泛採用 * 漸進符號種類 (1/3) * 漸進符號種類 (2/3) * 漸進符號種類 (3/3) * 常見的時間複雜度 假設 n 表示要處理的資料量 請注意: 0(1)<0(log2 n)<0(n)<0(nlog n)<0(n2)<0(n3) 0(2n) 0(n!) * 範例 1 寫出下列f(n)的時間複雜度: (1) 5log n+100 (2)8n3-15 (3) 20n2+400 (4)20n3+30n2+40nlogn+50n 解: (1) ?(log n) (2) ?(n3) (3) ?(n2) (4) ?(n3) * 範例2 寫出下列f(n)的時間複雜度: f(n)=2×n2+3×n+500 解:O(n2) 程式段中使用到的P、Q及R滿足P+Q+R=500 * 範例3 * 範例 4 試決定下列程式中「敘述X」的執行次數及程式段的時間複雜度 解:(1) 執行次數: (1+n)×n/2次 (2) 時間複雜度:O(n2) * 程式產生的過程 程式產生的過程一般可分為五個階段 需求(requirement)階段 設計(design)階段 分析(analysis)階段 再修飾與編碼(refinement and coding)階段 驗證(verification)階段 * 五大階段工作 「需求階段」是根據程式的要求定義出所有可能的輸入及輸出狀況 「設計階段」是根據需求設計出相對應的演算法 「分析階段」是嘗試設計出二種以上不同的演算法,再由不同的演算法中決定何者最佳 「再修飾與編碼階段」是選擇適當的程式語言開發工具對最佳演算法編碼並撰寫出對應的程式 「驗證階段」是對撰寫出的程式執行證明(proving)、測試(testing)及除錯(debugging)三項工作 *
您可能关注的文档
最近下载
- 家居装饰行业大数据精准营销策略分析报告.docx
- SH217_03ERP项目_MM物资组关键方案介绍_收货_v1.1-.pptx VIP
- 格物入门. 第1-7卷 丁韪良 著 同治7年 北京 同文馆1.pdf VIP
- 电磁场的对称性分析.pdf VIP
- 传感器基础教科书原理和特点讲解.pdf VIP
- TCBDA51-2021 住宅装饰装修工程施工技术规程.pdf VIP
- 最新人教版九年级数学下册 全册教学课件全集(858张).ppt VIP
- TCBDA 55-2021 住宅室内装饰装修工程质量验收标准.docx VIP
- SH217_03ERP-2_详细业务蓝图及解决方案_3.1-神朔修改后.docx VIP
- 2025年重庆市中考数学试卷(含标准答案)原卷.pdf
文档评论(0)