非線性迴圈.ppt

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

資料結構理論與實務 – 以C語言實作 Data Structures in C:Concept and Implementation 課程名稱:資料結構 指導老師:吳弘翔 目錄 第1章:資料結構導論(Introduction) 第2章:陣列與結構(Arrays and Structures) 第3章:指標與字串(Pointers and Strings) 第4章:鏈結串列(Linked Lists) 第5章:堆疊(Stacks) 目錄 第6章:佇列(Queues) 第7章:樹與二元樹(Trees and Binary Trees) 第8章:圖形結構(Graphs) 第9章:資料排序(Sorting) 第10章:資料搜尋(Searching) 第1章 資料結構導論 (Introduction) 1-1 資料結構的基礎 1-2 程式設計與演算法 1-3 抽象資料型態ADT 1-4 C語言的模組化程式設計 1-5 遞迴函數 1-6 程式的分析方法 1-1 資料結構的基礎-說明 「資料結構」(Data Structures)是一門計算機科學的基礎學科,其目的是研究程式使用的資料在電腦記憶體的儲存方式,以便撰寫程式處理問題時,能夠使用最佳的資料結構,並且提供一種策略或方法來有效率的善用這些資料,以便達到下列目的,如下所示: 程式執行速度快。 資料佔用最少的記憶空間。 更快速的存取這些資料。 1-1 資料結構的基礎-圖例 上述轉換資料的方法策略就是「演算法」(Algorithms)。 演算法和資料結構的關係非常的密切,因為程式使用的演算法和資料結構都會影響程式的執行效率,換句話說,演算法加上資料結構就等於程式,如下所示: 「演算法」 + 「資料結構」 = 「程式」 1-2 程式設計與演算法 1-2-1 程式設計的過程 1-2-2 演算法 1-2-3 模組化 1-2-4 由上而下的設計方法 1-2-1 程式設計的過程-階段 程式設計是將需要解決的問題轉換成程式碼,程式碼不只能夠在電腦上正確的執行,而且可以驗證程式執行的正確性,程式設計的過程可以分成5個階段,如下所示: 需求(Requirements) 設計(Design) 分析(Analysis) 撰寫程式碼(Coding) 驗證(Verification) 1-2-1 程式設計的過程-需求 需求(Requirements):程式設計的需求是在了解問題本身,以便確切獲得程式需要輸入的資料和其產生的結果,如下圖所示: 1-2-1 程式設計的過程-設計 設計(Design):在了解程式設計的需求後,我們就可以開始找尋解決問題的方法和策略,簡單的說,設計階段就是找出解決問題的步驟,如下圖所示: 1-2-1 程式設計的過程-分析 分析(Analysis):在解決需求時,只有一種解決方法嗎?例如:如果有100個變數,我們可以宣告100個變數來儲存資料,或是使用陣列來儲存,在分析階段是將所有可能解決問題的演算法都寫下來,然後分析比較那一種方法比較好,選擇最好的演算法來撰寫程式。 1-2-1 程式設計的過程-撰寫 撰寫程式碼(Coding):現在就可以開始使用指定的程式語言來撰寫程式碼,以本書為例是使用C程式語言,在實際撰寫程式時,可能發現另一種方法比較好,因為設計歸設計,在實際撰寫程式時才能真正發現其優劣,如果這是一個良好的設計方法,就算改為其它方法也不會太困難。 1-2-1 程式設計的過程-驗證 驗證(Verification):驗證是證明程式執行的結果符合需求的輸出資料,在這個階段可以再細分成三個部分: 證明:執行程式時需要證明它的執行結果是正確的,程式符合所有輸入資料的組合,程式規格也都符合演算法的需求。 測試:程式需要測試各種可能情況、條件和輸入資料,以測試程式執行無誤,如果有錯誤產生,就需要除錯來解決程式問題。 除錯:如果程式無法輸出正確的結果,除錯是在找出錯誤的地方,我們不但需要找出錯誤,還需要決定如何更正它。 1-2-2 演算法-定義 演算法是完成目標工作的一組指令,這組指令的步驟是有限的。除此之外,演算法還必須滿足一些條件,如下所示: 輸入(Input):沒有或數個外界的輸入資料。 輸出(Output):至少有一個輸出結果。 明確性(Definiteness):每一個指令步驟都十分明確,沒有模稜兩可。 有限性(Finiteness):這組指令一定結束。 有效性(Effectiveness):每一個步驟都可行,可以追蹤其結果。 1-2-2 演算法-方法 演算法只是將解決問題步驟詳細的寫出來,所以並沒有固定的方式,基本上只要能夠描述這組指令的執行過程即可,常用的方式如下所示: 一般語言文字:直接使用文字描述來說明執行的步驟。 虛擬碼(Pseudo Code):趨近程

文档评论(0)

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

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

1亿VIP精品文档

相关文档