- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch01资料结构导论
第一章-資料結構導論 1.1認識資料與資訊 1.2解析演算法 1.3程式與程式設計 1.4演算法 1.5演算法分析 1-1認識資料與資訊 資料結構(Data Structure)是一門和電腦硬體與軟體都有相關涉獵的學科。 其中包含了演算法(Algorithm)、資料儲存架構、排序、搜尋、程式設計概念與雜湊函數。 何謂資料(Data): 一種未經處理的原始文字(Word)、數字(Number)、符號(Symbol)或圖形(Graph)等。 何謂資訊(Information): 當資料經過處理(Process)『以特定的方式有系統的整理、歸納甚至進行分析後,就成為資訊』 資料結構可以看成是一種在資料處理過程中,一種分析、組織資料的方法(Algorithm)與邏輯(Logic)。並考慮到了資料間的特性與相互關係(Relationship)。 1-2解析演算法(Algorithm) 資料結構與演算法相輔相成: 程式是否有效率的完成預定任務,取決於 → 資料結構。 程式是否能清楚而正確的把問題解決,取決於→演算法。 何謂演算法: 根據韋氏字典中的定義:『在有限步驟內解決數學問題的程序』 在計算機領域中的定義:『為了解決某一個工作或問題,所需要有限數目的機械性或重複性指令與計算步驟』 演算法必須符合下列五個條件: 輸入(Input): 0或多個輸入資料,這些資料必須有清楚的描述或定義。 輸出(Output): 至少會有一個輸出結果,不可以沒有輸出結果。 明確性(Definiteness): 每個指令或步驟必須是簡潔明確而不含糊的。 有限性(Finiteness): 在有限的步驟後一定會結束,不會產生無窮迴圈。 有效性(Effectiveness): 步驟清楚而且可行,能讓使用者用紙筆計算而求出答案。 演算法的表示方式: 一般文字:中英文。 虛擬語言(Pseudo-Language):SPARKS、PASCAL-LIKE等等。 表格或圖形。 流程圖:資料流程圖(DFD:Data Flow Diagram)及控制流程圖(CFD:Control Flow Diagram) 程序語言:C、C++、Java、Visual Basic等等。 演算法與程式的不同? 程式不一定滿足有線性的要求,如作業系統或機器上的運作程式,除非當機,否則永遠在等待迴路或記錄機器運作狀態。 SPARKS語言 虛擬語言(Pseudo-Language):一種不能直接放進電腦中執行的語言,通常用來描述演算法。 語言結構: 指定指令(Assignment statement) 語法:變數←表示式或數值。 例如: A←5(A變數設定為數值5) A ←B+C(A變數設定為B變數所儲存的數值加上C變數所儲存的數值) 運算子(Operators): 布林運算子(Boolean operator):true(真)、false(偽) 邏輯運算子(Logical operator):and(且)、or(或)、not(非) 相關運算子(Relational operator):<(小於)、≦(小於等於)、>(大於)、≧(大於等於)、=(等於)、≠(不等於) 數學運算子(Arithmetic operator):+(加)、-(減)、*(乘)、**(次方)、/(除取商)、%(除取餘) SPARKS語言 迴圈指令: loop指令語法: loop ..... forerver for指令語法: for 變數←起使值 to 結束值 by 遞增值 do ..... next while指令語法: while 執行條件式 do ..... end repeat指令語法: repeat ..... until 結束條件式 SPARKS語言 條件判斷指令: if指令語法: if 條件式 then [條件成立執行的區塊] else [條件不成立執行的區塊] case指令語法:多重條件判斷式 case :條件式一:條件式一成立執行的區塊 :條件式二:條件式二成立執行的區塊 :條件式三:條件式三成立執行的區塊 ..... :else :其他情況執行的區塊 end 離開指令: exit:跳出迴圈 return:返回呼叫程式 return(A):返回呼叫程式並傳回A的數值。 SPARKS語言 程式結構: Procedure 名稱(傳遞到程式的參數) ..... end 程序呼叫: Call 程式名稱(傳遞到該程式的參數) 註解: //註解 SPARKS語言寫作範例 問題:計算1+2+3+…+n傳回結果 Procedure Sum(n) sum←0 for i ←1 to n do sum←sum+I next return sum end Sum .... sum← Call Sum(5) 1-3程式(
原创力文档


文档评论(0)