- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9.4 排序 排序是將事物依某個次序排好 如整數可由小而大(或由大而小)排序,字串可依字典方式排序 排序後,可增進搜尋速度 (例如二元搜尋) 排序都是針對以陣列為基礎的實現 因為要排序一個大量項目的串列是非常耗時的,所以非常需要一個好的排序演算法 我們介紹兩種相當不一樣的排序演算法 選擇排序、泡沫排序 其他排序演算法於 2 年級資料結構再上 選擇排序 例:給你一個名字的表列,請將它們以字母順序排列好 找出在字母中排在最前面的名字,並將它寫在另一張紙上 從原先的表列中劃去這個名字 繼續重複這個循環步驟直到所有在原先表列上的名字都被劃去了並寫到了第二張表列上,在這個時候第二張表列是已排序好的名單 缺點:需要 2 個完整表列的空間 選擇排序(續) 稍微調整一下這個手動的做法可以省掉上述方法中第 2 個表列所需的記憶體空間 當你劃掉一個姓名於原先的表列時,就產生了一個自由的空間(即內容不再重要的記憶體空間,此空間可再利用) 我們不用將最小的值寫在第二張表列上,而是將這個被劃去的項目與它正確應該放置的位置上的那個項目做交換 選擇排序(續) 選擇排序(續) 泡沫排序 也是一種選擇排序方法,但使用不同的機制來找出最小值 由串列的最後一項開始往上,我們每次比較相鄰的一對項目,當這對項目中在底層的小於在它上層的項目時就進行交換 最小的項目就 “浮出” (bubble up) 到串列頂端 然後將未排序部份的頂端位置往下移動一格,繼續重複這個循環步驟 泡沫排序(續) 泡沫排序(續) 9.6 堆疊與佇列 一個堆疊是一個抽象的資料型態,存取資料只從一端進行 LIFO,代表後進先出 (Last In First Out) 插入的動作被稱為Push(推入堆疊),而刪除的動作稱為Pop(彈出堆疊) 例:一個一個放上或取出的自助餐盤 堆疊操作範例: Push 1 Push 2 Pop Push 3 Pop Push 4 問題:堆疊最後的結果為何?取出的數字的順序為何? 堆疊(續) 堆疊(續) 例:項目 90, 65, 80, 95, 75, 60 放入未排序鏈結串列,因為每次放入都放在最前面,得圖 9.5 運用上面 Print list 演算法,第 1 個迴圈執行完後,堆疊如下: 佇列 (queue)是一種抽象的資料型態,項目是由一端進入而由另外一端移出 FIFO, 先進先出 (First In First Out) 這就好像在銀行或超級市場排隊等待一樣 沒有標準的佇列專用術語 Enqueue, Enque, Enq, Enter及Insert都可用於插入的動作 Dequeue, Deque, Deq, Delete及Remove都可用於刪除的動作 堆疊與佇列以鏈結串列的實現 9.7 樹(只看講義即可) 抽象的資料型態(ADT)諸如串列、堆疊與佇列等很自然的是線性的資料型態 更多複雜的關係那就需要更複雜的結構 如:樹、圖形等 樹狀結構範例 這些階層式架構稱為樹 (trees) 二元樹 每一個節點的子節點不超過兩個 樹的開始位置是一個獨特的起始節點稱為樹根 (root) 節點左邊的子節點(如果存在)稱為它的左子節點(left child) 節點右邊的子節點(如果存在)稱為它的右子節點(right child) 如果樹中的某一節點沒有任何子節點,這個節點稱為一個葉節點(leaf node) 圖形 圖形(Graph):類似樹狀結構,但不限定一個節點只能有一父節點 圖形(Graph): 一種資料結構,它包括一群的節點與一群關係這節點的邊所組成 無方向的圖形(undirected graph): 在這圖形中的邊是沒有方向性的 有方向的圖形(directed graph ,digraph):一個圖形中的邊是由一個頂點指向另一個(或相同)頂點 圖形範例 圖形範例(續) 道德的議題:網站內容 網際網路為通訊帶來了革命性的改變,提供了資訊交換及自我表現的一個史無前例的公開場所 為數眾多及內容多樣化的網站引起許多人開始進行網站內容的評估,並引起考慮設立審查制度的贊成與反對意見爭論 一些人選擇使用阻斷或過濾系統 選擇排序(中文) 泡沫排序(中文) 堆疊(中文) 勘誤 第 285 頁,Selection Sort 中,第 5 列,cruuent 應為 current 第 285 頁,倒數第 2 段第 1 列,”唯有兩個抽象步驟:判斷當” 應為 “上面的步驟中有兩個抽象步驟:判斷是否” 第 285 頁,No sorted yet 應為 Not sorted yet 第 286 頁,Find index of the smallest 應為 Find index of the smallest unsorted item,其中第 3、4 列
文档评论(0)