- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
06演算法與資料結構
一、演算法:Algorithm
定義:
一個演算法應具備之五個特性(條件)
.輸入:由外界供給演算0或多個輸入資料。
.輸出:至少產生一個輸出。
.明確性:要很明白地知道所做的運算要如何處理。
.有限性:經過一些步驟後必需要執行終止,不會造成無窮迴路。
.有效性:即每一步驟皆能用紙筆完成。
影響程式執行時間因素:
.程式所輸入資料量多少有關(使用者)
.使用演算法(algorithm)所須時間的複雜度(程式)
.Compiler的產生機器碼是否最佳化(系統程式)
.指令在電腦中執行的速度(電腦硬體)
二、遞迴:Recursion
在程序中直接或間接呼叫該程序本身,稱之為遞迴。
能以if-then-else及do-loop迴圈敘述所寫成之程式,均可用Recursive Procedure改寫。
遞迴的種類:有直接遞迴與間接遞迴兩種。
Direct Recursion:在Procedure內可直接呼叫程式本身。
Indirect Recursion:在Procedure內,呼叫其他Procedure,而由其它Procedure呼叫原程序。
C, Pascal, PL/I, Lisp, Prolog均可使用Recursion。(Fortran不可以)
Recursion的優點:簡短明確。
Recursion的缺點:Recursion時的參數儲存於Stack,取回及移轉耗費時間,執行時間受影響。
三、線性串列:Linear List
線性串列又稱有序串列(ordered list)或稱循序串列(sequential list)。
其為一組記錄X(1), X(2), …, X(n), n0,其間之相對關係是線性的。線性串列最常見為陣列。(其中X(1)為第一個元素,X(i)在X(i-1)之後)
串列表示法:
.循序對應:Sequential Mapping,如陣列。
.鏈結串列:Linked List,如指標。
線性串列可進行之運算:
.在第i個記錄前後插入一新記錄。
.將第i個記錄刪除。
.存取第i個記錄,即更新其內容。
.複製該線性串列。
.依某一欄位排序串列。
.依某一欄位搜尋串列。
陣列:Array為一群index和value成對組成之集合,具有下列特性:
.可透過index找到相對應的值。
.在記憶體中採循序方式儲存,且組成元素大小一定。
.陣列中之元素均為同一資料型態。
四、一維陣列表示法
當陣列表示法為A(start : end)時,start為下限,end為上限。假設s0為起始位址,d為每一元素所佔之空間,則A(i) = s0 + (i - start) * d
例:假設A為一具有1000個元素的陣列,每一個元素為4個位元組的實數。若A[500]的位址為100016,則A[1000]的位址為 。
例:陣列A(1930:1995)中,A(1941)的位址為212,d為4,則A(1982)的位址為 。
Ans:17D016, 376
五、二維陣列表示法
二維陣列轉成一維陣列,儲存在記憶中,有Row-major或Column-major之存放方式。
當陣列的表示法為A(s1:e1, s2:e2)時,
.以列為主:(列↑,值↑)
公式為:A(i, j) = s0 + (i - s1)(e2 - s2 + 1) * d + (j - s2) * d
.以行為主:(行↑,值↑)
公式為:A(i, j) = s0 + (j - s2)(e1 - s1 + 1) * d + (i - s1) * d
例:若A(1, 1)在位置2,A(2, 3)在位置18,A(3, 2)在位置28,則A(4, 5)在位置 。
例:假設A為二維陣列,通常A的每一個元素皆以列或行的方式儲存在計算機的連續位置,假設A的每一個元素皆以一個位置來儲存。若A[2, 3] 存在1756且A[3, 3] 存在1760,則 A[4, 4]應存在 。
Ans:46, 1765
六、二元樹
定義:包含一樹根及兩個分離之二元樹(左子樹與右子樹)所構成。是由有限node所組成之集合,每個節點之分支度(degree)最多為2,也可能是空集合。
分為陣列表示法(用循序之一維陣列表示)及鏈結串列表示法兩種。
陣列表示法:將二元樹想成一個完滿二元樹,第i個階度具有2i-1個節點,依序存放於記憶體中。其優點:存取方便;缺點:浪費時間。
鏈結串列表示法:每個節點之結構為:
.優點:插入與刪除容易。
.缺點:很難找到node之parent。
七、二元樹之追蹤
即拜訪二元樹中之全部節點各一次,且每一節點僅拜訪一次。
目的:可將樹狀資料化成線性次序排列之資料。
追蹤方法有
您可能关注的文档
最近下载
- 2024年4月广东深圳市光明区马田街道办事处招聘一般专干及笔试历年典型考题及考点剖析附答案带详解.docx
- 文秘技能大赛题库完整.pdf
- 建筑工程图集 07SJ504-1 隔断、隔断墙(一).pdf
- 班级管理方案和班委职责与班级管理条例(范本)合集.doc VIP
- 2025年广东省高中语文学业水平合格考试卷试题(含答案详解).pdf VIP
- 金融监管学银行监管讲义课件.pptx
- 高中体育与健康_篮球 传切配合 教学课件设计.ppt
- 二 《简单相信,傻傻坚持》(教学课件)-【中职专用】高二语文精讲课堂(高教版2023·职业模块).pptx VIP
- 人教版《劳动教育》九年级 劳动项目二《三餐有营养》课件.pptx
- 2024年中考语文一轮复习(全国)(老师用)议论文写作(练习).pdf VIP
文档评论(0)