- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
資料結構(用C語言)資訊工程學系王家輝資訊工程學系.tw/~wangch修習本課程的同學,除了學到常用的資料表現方式之外,如何在設計C程式時選取合適的資料結構、配合適當的演算法、和評估所採用的資料結構的優缺點等都是本課程的重點。02資料結構是資訊科學學門中的核心課程,而本課程主要在介紹各種型態資料結構在C程式語言中的呈現,以及和演算法的關係。01課程目標程式設計基本概念與C程式語言基本認識C程式語言組成資料型態、運算子、流程控制指令函數、指標、陣列與結構)輸入/輸出與檔案處理)演算法的規格,資料抽象化與程式的複雜度分析Array(陣列)與Structure(結構)Stack(堆疊)與Queue(佇列)LinkedList(串列)Tree(樹狀結構)Graph(圖狀結構)Sorting(排序)Hashing(雜湊結構)Heap(堆積結構)Searching(搜尋結構)課程大綱與進度EllisHorowitz,SaratajSahni,SusanAnderson-freed,FundamentalsofdatastructuresinC,W.H.FreemanandCompany,NewYork,199301BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage,2ndEd.,Printice-Hall,NewJersey,199002參考書籍010203平時成績(程式作業)30%期中考30%期末考40%成績評量第一章
資料結構基本觀念資訊工程學系系統的生命週期
SystemLifeCycle需求(Requirement)一整套規格(Asetofspecifications)所需之輸入及輸出(InputsandOutputs)分析(Analysis)將問題分割成可以掌握的小問題有兩種分析方式由下而上(bottom-up)由草圖一磚一瓦的蓋房子由上而下(top-down)由程式最終要完成目標開始設計組織及流程圖(將程式分割成可管控的單元)系統的生命週期
SystemLifeCycle設計(Design)抽象化的資料型態(e.g.選課系統)演算法的方法與步驟修正及程式設計(RefinementandCoding)完成抽象化資料的實際表示撰寫演算法的程式驗證(Verification)用理論證明該方法的正確性(CorrectnessProofs)費時可參考別人已驗證過的演算法測試(Testing)e.g.‘if’and‘switch’除錯(ErrorRemoval)演算法的一般規格
AlgorithmSpecification想要利用電腦解決特定問題的方法及步驟,輸入(Input)需要提供0個以上數量的外在資料輸出(Output)至少要有一個以上的資料產出確定性(Definiteness)每一項方法及步驟是清楚而且不是模稜兩可的有限性(Finiteness)這個演算法一定要在有限的步驟內完成有效性(Effectiveness)每一項方法及步驟是足夠簡單的可以完成(可以對應到程式),基本上用一支筆及一張紙就可以完整描述這個演算法,也就是每一步驟是可行的幾個範例
Samples04030102選擇排序法(SelectionSort)在未排序的數列中每次找出最小(最大)的,將最小(最大)的數值依序列出二元搜尋法(BinarySearch)在已排序好的數列中找到是否存在某一筆數值e.g.沒有告訴這些數列一開始如何儲存,還有結果到底要放到哪裡4我們嘗試用中英文和C語言夾雜著來描述這個演算法:5一個簡單的方法將一連串正整數做由大到小或者由小到大的排列1從這些未排序的數列中一一找出最小,把它們依序置入一個排序的數列中2這樣的敘述不是一個演算法的正確描述3SelectionSort氣泡排序法的演算法
SelectionSortAlgorithm假設資料都放在個整數陣列,名字為list,第i筆整數就放在list[i]中,0=infor(i=0;in;i++){Examinelist[i]tolist[n-1]andsupposethatthesmallestintegerisatlist[min];Interchangelist[i]andlist[min];} 完整程式Program1.3Inte
文档评论(0)