资料结构导论(INTRODUCTION).ppt

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

第1章 資料結構導論(Introduction) 1-1 資料結構的基礎 1-2 程式設計與演算法 1-3 抽象資料型態ADT 1-4 C語言的模組化程式設計 1-5 遞迴函數 1-6 程式的分析方法 1-7 Big Oh函數 1-1 資料結構的基礎-說明 「資料結構」(Data Structures)是一門計算機科學的基礎學科,其目的是研究程式使用的資料在電腦記憶體的儲存方式,以便撰寫程式處理問題時,能夠使用最佳的資料結構,並且提供一種策略或方法來有效率的善用這些資料,以便達到下列目的,如下所示: 程式執行速度快。 資料佔用最少的記憶空間。 更快速的存取這些資料。 1-1 資料結構的基礎-圖例 策略或方法是指如何選擇最恰當的資料結構,並且將這些資料轉換成有用的資訊,轉換資料的方法就是「演算法」(Algorithms),如下圖所示: 演算法和資料結構的關係非常的密切,因為程式使用的演算法和資料結構都會影響程式的執行效率,換句話說,演算法加上資料結構就等於程式,如下所示: 「演算法」 + 「資料結構」 = 「程式」 範例 1 : 找出最大數 main() { int largest = 0; if (25 largest) largest = 25; if (30 largest) largest = 30; if (18 largest) largest = 18; if (7 largest) largest = 7; if (10 largest) largest = 10; printf(最大數為%d, largest); } 範例 2 : 找出最大數 01:main() 02:{ 03: int i; 04: int list[5] = {25, 30, 18, 7, 10}; 05: int largest = 0; 06: for(i = 0; i 5; i++) 07: if (list[i] largest) largest = list[i]; 08: printf(最大數為%d, largest); 09:} Difference between the above two? How data structure affects your program? Which one is better? Why? Which one would be potentially faster? Why? Let’s review some basics before answering the above questions … The Von Neumann Model Memory Access CPU vs Memory Speed Clock cycle of a 2GHz CPU 1 / (2 * 109) = 0.5 ns In case 4 clocks per instruction ? 2 ns How about int sum = i + j; DDR2-800 1 / (400 * 106) = 2.5 ns In case CL = 6 ? 6 * 2.5 ns = 15 ns For a WORD access Cache 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):現在就可

文档评论(0)

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

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

1亿VIP精品文档

相关文档