第一章的资料结构导论.ppt

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

第一章資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 模組化設計與C語言 1-4 演算法效能分析 資料結構簡介 資料與資訊 演算法 演算法的條件 資料與資訊 所謂資料(Data),指的就是一種未經處理的原始文字(Word)、數字(Number)、符號(Symbol)或圖形(Graph)等,它所表達出來的只是一種沒有評估價值的基本元素或項目。 當資料經過處理(Process),例如以特定的方式有系統的整理、歸納甚至進行分析後,就成為「資訊」(Information)。 演算法 資料結構與演算法是程式設計中最基本的內涵。 程式能否快速而有效率的完成預定的任務,取決於是否選對了資料結構,而程式是否能清楚而正確的把問題解決,則取決於演算法。 所以可以這麼認為:「資料結構加上演算法等於可執行的程式。」 演算法的條件 當認識了演算法的定義後,我們還要說明演算法所必須符合的五個條件: 常用的演算法 一般文字敘述:中文、英文、數字等。文字敘述法的特色在使用文字或語言敘述來說明演算步驟。例如以下就是一個學生小華早上上學並買早餐的簡單文字演算法: 虛擬語言(Pseudo-Language):接近高階程式語言的寫法,也是一種不能直接放進電腦中執行的語言。一般都需要一種特定的前置處理器(preprocessor),或者用手寫轉換成真正的電腦語言,經常使用的有SPARKS、PASCAL-LIKE等語言。以下是用SPARKS寫成的鏈結串列反轉的演算法: 表格或圖形:如陣列、樹狀圖、矩陣圖等。 流程圖:流程圖( Flow Diagram) 算是一種通用的表示法,也有的圖型符號。例如請您輸入一個數值,並判別是奇數或偶數。 程序語言:目前演算法也能夠直接以可讀性高的高階語言來表示,例如Visual Basic語言、C語言、C++語言、Java語言。 演算法和程序 演算法和程序是有所區別,因為程式不一定要滿足有限性的要求,如作業系統或機器上的運作程式。 除非當機,否則永遠在等待迴路(waiting loop),這也違反了演算法五大原則之一的「有限性」。 只要是演算法都能夠利用程式流程圖表現,但因為程式流程圖可包含無窮迴路,所以無法利用演算法來表達。 認識程式設計 資料結構與演算法必須透過程式(Program)的轉換,才能真正由電腦系統來執行。 所謂程式,是由合乎程式語言語法規則的指令所組成,而程式設計的目的就是透過程式的撰寫與執行來達到使用者的需求。 程式語言的好壞 可讀性(Readability)高:閱讀與理解都相當容易。 平均成本低:成本考量不侷限於編碼的成本,還包括了執行、編譯、維護、學習、除錯與日後更新等成本。 可靠度高:所撰寫出來的程式碼穩定性高,不容易產生邊際錯誤(Side Effect)。 可撰寫性高:對於針對需求所撰寫的程式相對容易。 程式設計步驟 需求認識(requirements):了解程式所要解決的問題是什麼,有那些輸入及輸出等。 設計規劃(design and plan):根據需求,選擇適合的資料結構,並以任何的表示方式寫一個演算法以解決問題。 分析討論(analysis and discussion):思考其他可能適合的演算法及資料結構,最後再選出最適當的標的。 編寫程式(coding):把分析的結論,寫成初步的程式碼。 測試檢驗(verification):最後必需確認程式的輸出是否符合需求,這個步驟得細步的執行程式並進行許多的相關測試。 結構化程式設計 主要是以「由下而上法」與「由上而下法」為主。 「由下而上法」是指程式設計師將整個程式需求最容易的部份先編寫,再逐步擴大來完成整個程式。 「由上而下法」將整個程式需求從上而下、由大到小逐步分解成較小的單元,或稱為「模組」 (module)。 核心精神,就是「由上而下設計」 與「模組化設計」。 例如在Pascal語言中,這些模組稱為「程序」 (Procedure),C語言中稱為「函式」 (Function)。 結構化程式設計控制流程 物件導向程式設計 至於「物件導向程式設計」 (Object-Oriented Programming, OOP)則是近年來相當流行的一種新興程式設計理念。 它主要讓我們在設計程式時,能以一種更生活化、可讀性更高的設計觀念來進行,並且所開發出來的程式也較容易擴充、修改及維護。 常見的物件導向語言包括C++、Java等語言。 抽象化動作說明表 物件導向程式設計 封裝(Encapsulation) 繼承(Inheritance) 多形(Polymorphism) 封裝(Encapsulation) 就是利用「類別」來實作「抽象化資料型態」(ADT)。 所謂「抽象化」,就是將代表事物特徵的資料隱藏起來,並定義一些方法來做

文档评论(0)

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

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

1亿VIP精品文档

相关文档