第9章资料排序(Sorting).doc

第9章资料排序(Sorting)

第9章:資料排序(Sorting) 1. 「資料」(Data)是指收集但是沒有經過整理和分析的原始數值、文字或符號,它是資訊的原始型態。電腦將資料儲存成檔案,檔案是一種有組織的資料,各種不同層次的資料組織稱為「資料階層」(Data Hierarchy)。 資料階層一共分成六個階層:位元、位元組、欄位、記錄、檔案和資料庫,如下圖所示: 上述圖例可以看出最小儲存單位是位元,8個位元組成位元組,也就是ASCII碼的字元,數個位元組結合成一個欄位,多個欄位組成記錄,最後將一組記錄儲存成檔案,資料庫是一組相關檔案的集合。 2. 排序處理的資料主要是針對資料階層檔案中的記錄,依記錄的某些欄位,稱為「鍵值」(Key),以特定規則排列成遞增或遞減順序。例如:學生連絡與成績記錄的資料,如下圖所示: 上述學生記錄可以依指定欄位的比較來重新排列記錄順序,例如:使用【成績】欄位重新排列找出成績最高的學生,如下圖所示: 上述記錄依成績欄位值從大到小排列,可以得到最高成績90分,這種比較和重新排列記錄的工作稱為排序,成績欄位值是鍵值。換句話說,排序工作就是執行鍵值的比較和交換,以便將重新排列鍵值的順序。 排序的種類 排序方法依儲存媒體可以分為兩種:內部排序法(Internal Sorting)和外部排序法(External Sorting)。內部排序法是將鍵值儲存在電腦記憶體來執行排序,外部排序法因為鍵值的資料量太大無法全部儲存在記憶體,其排序的過程是使用外部儲存裝置,例如:硬碟或磁帶機儲存排序的鍵值。 一般來說,在計算機科學使用的排序演算法,其分類的標準有三種,如下所示: 執行效率(Computational Complexity):使用Big Oh評估的執行效率,以資料量n來說,其範圍從O(n Log n)到O(n2)。 記憶體的使用(Memory Usage):排序演算法所需使用的電腦資源,主要是指額外記憶體空間的使用。 穩定性(Stability):如果排序演算法是一種穩定性演算法,這是指在排序後,重複鍵值的順序並不會改變,仍然保持原來順序。以C語言的結構陣列來說,如果students[5]是陳會安,students[6]是江小魚,其鍵值的成績都是77,在排序後,並不會交換陣列元素,陣列索引值5仍是學生陳會安,6是江小魚。 3. 泡沫排序法。 1: [5][34][12][33][10][9][45] 2: [5][12][33][10][9][34][45] 3: [5][12][10][9][33][34][45] 4: [5][10][9][12][33][34][45] 5: [5][9][10][12][33][34][45] 6: [5][9][10][12][33][34][45] 選擇排序法。 1: [5][45][34][12][33][10][9] 2: [5][9][34][12][33][10][45] 3: [5][9][10][12][33][34][45] 4: [5][9][10][12][33][34][45] 5: [5][9][10][12][33][34][45] 6: [5][9][10][12][33][34][45] 插入排序法。 1: [5][45][34][12][33][10][9] 2: [5][34][45][12][33][10][9] 3: [5][12][34][45][33][10][9] 4: [5][12][33][34][45][10][9] 5: [5][10][12][33][34][45][9] 6: [5][9][10][12][33][34][45] 謝耳排序法。 1:h序列4: [33][5][9][12][45][10][34] 2:h序列2: [9][5][33][10][34][12][45] 3:h序列1: [5][9][10][12][33][34][45] 4. 程式碼改為使用整數或浮點數陣列。 5. 只需修改if條件就可以由大到小排序 6. 請修改第9-2-4節的程式碼,新增方法來產生h佇列。 7. 合併排序法和快速排序法,其執行效率為O(n Log n),比基本排序法的O(n2)優,演算法是將排序資料分割成多個小集合分別執行排序,解決排序問題,所以可以使用遞迴方式解決子問題來完成整個資料排序。 8. 合併排序法。 start-mid-end: 0 - 0 - 1: [15][45] 2 - 2 - 3: [22][34] 0 - 1 - 3: [15][22][34][45] 4 - 4 - 5: [53][90] 6 - 6 - 7: [29][67] 4 - 5 - 7: [29][53][67][90] 0 - 3 - 7: [15][22

文档评论(0)

1亿VIP精品文档

相关文档