- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一课资料结构导论
德明科技大學資訊科技系 資料結構Data Structure chapter 1 課程資訊 Lecturer: 江政杰 Office: 四合院 301 URL: nas.takming.edu.tw/pluto Mail: pluto@mail.takming.edu.tw 課程網頁 URL: nas.takming.edu.tw/pluto/ds/ds.html 教材、補充資訊 作業 相關連結 課程資訊 Text Book : 資料結構 – 使用C語言李春雄著 上奇出版社 成績評量 期中、期末各佔30%、平時成績佔40% 課程內容 資料結構與演算法 遞迴 Recursion 陣列 Array 堆疊 Stack 佇列 Queue 鏈結串列 Linked List 樹狀結構 Tree Structure 圖形 Graph Structure 排序 Sorting 搜尋 Search 修課基礎 程式撰寫 對於變數、函數、陣列等基本程式語言的使用與掌握 對於一個問題,可以在找出解決方法之後,撰寫出程式碼 具備邏輯概念 學習程式除了語法的熟悉外,最重要的是邏輯概念的訓練,才有能力學習其他語言 還無法順利掌握程式撰寫?? 以資料結構這門課程為程式設計的進階訓練 程式設計能力的再次訓練 上課方式 投影片展示,請自行搭配課本閱讀 實例練習 在課程中會搭配一些程式範例,讓同學實際操作程式之撰寫,以掌握程式撰寫的能力 作業練習 每一段時間,會有一完整的題目要求撰寫程式,計入平時成績內 期中、期末考試 學習程式 入門 學習VB、Dev C++等軟體的使用 熟悉VB、C的語法撰寫 進階 學習資料結構與演算法 深入 最好的練習就是實際克服困難的題目 程式的組成 資料:在程式中以變數的型態出現,每個變數都在記憶體有一席之地,包含 變數型態:決定所佔記憶體的長度 變數值:實際的變數資料值 變數位址:系統處理 程序:即if、loop等程式語法與流程 I/O:輸入與輸出,如scanf與printf 練習 請撰寫一個程式,可以顯示九九乘法表 以兩層迴圈方式處理 先能夠顯示正確結果,才思考如何排的漂亮 先示範… 資料與資訊 資料 是客觀存在的、具體的、事實的記錄 資訊 經過資料處理之後的結果即為資訊 資料結構的概念 當我們解決問題時,還沒開始實際寫程式,必須先規劃程式如何撰寫 I/O:輸入輸出的格式與資料內容 程序:處理的方法(演算法) 資料:決定此問題會用到那些類型的資料 有效率的程式 = 資料結構 + 演算法 所謂的資料結構,就是針對一個問題,決定如何設計資料部份,尤其是適合此問題的特殊資料類型 資料在記憶體中的儲存方式 資料結構的概念 在任何問題中,資料元素都不是孤立存在,彼此之間存在某些邏輯關係,這種關係可稱為結構(structure),種類有 集合:元素間沒有次序性 線性結構:陣列、串列、佇列、堆疊 樹狀結構 圖形結構 範例說明 寫一個程式計算五個同學的平均成績 演算法的五原則 演算法(Algorithm): 解決問題的方法 輸入(Input) 不一定要有輸入。可能沒有,也可能是多個資料輸入。 演算法的五原則 有限性(Finiteness) 演算法不能有無窮迴路,必須能終止執行 由於演算法並非是真正可以執行的程式,而是設計者所推演出解決問題的步驟,因此,必須在有限的步驟內要完成解決問題的程序 真正的程式是可以有無窮迴路的動作 正確性(Correctness) 既然演算法是解決問題的方法,因此正確性是最基本的要求 演算法的範例 演算法: 一組可用來解決特定問題的有限指令或步驟 依循這些指令或步驟,可以完成工作 案例: 做蛋糕 演算法的範例 好吃的蛋糕怎麼來? 描述演算法的三種方法 文字 採用口語化的文字敘述來加以描述,容易冗長且較不精確,在撰寫、閱讀、會意時可能會有誤差,因此一般較不常用 描述演算法的三種方法 流程圖 利用圖形方式來表達欲解決問題的步驟 描述演算法的三種方法 虛擬碼 使用文字摻雜程式語言,來描述解題步驟與方法 兼具文字描述及流程圖的優點 程式設計概念 程式設計概念 程式設計概念 程式設計範例 題目 計算國文與英文的平均成績,並依照平均成績來求顯示「及格」與「不及格」 結構化程式設計 利用「由上而下」的技巧,將程式分解成多個具有獨立功能的模組 強調任何程式邏輯均可由三種結構組成 循序(Sequence):簡單命令式的指令 如X=Y+Z 選擇(Condition):做決策使用 if-then-else select case / switch 重複(Repetition):重複執行 do-while do-until for 演算法、資料結構、程式 演算法 整個問題的解決方法,以邏輯方式描述 以文字、或虛擬碼方式,撰寫整個程式的流
文档评论(0)