- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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
您可能关注的文档
- 第3次理综物理部分.doc-萧山三中.doc
- 第18章温度、热膨胀、理想气体定律.ppt
- 第2章网站制作入门制作过程详解.ppt
- 第3章Altera可编程逻辑器件.ppt
- 第2章微生物分子生态学.ppt
- 第3章多晶体X射线衍射方法.ppt.ppt
- 第3章基于PSOC平台的硬件设计-成都信息工程大学论文管理系统.doc
- 第26章电容器与介电质.ppt
- 第2章-到上层目录.ppt
- 第3节化学与环境.ppt
- 2023学年诸暨中学高三年级第二学期3月第二次模拟考试(政治)公开课教案教学设计课件资料.docx
- 运动的合成与分解(二)公开课教案教学设计课件资料.pptx
- 近五年浙江省各地图形的翻折(轴对称)原题公开课教案教学设计课件资料.doc
- 如何做教师-2019-11-13-中关村一小相关公开课教案教学设计课件资料.pptx
- 生活中的圆周运动 (水平面)正式版公开课教案教学设计课件资料.pptx
- 专题10 条件概率与全概率公式公开课教案教学设计课件资料.docx
- 金华市东阳市2019学年第二学期期末测试卷公开课教案教学设计课件资料.doc
- 5 琥珀(第二课时)【慕课堂版】公开课教案教学设计课件资料.pptx
- 项目五 打印米老鼠模型公开课教案教学设计课件资料.ppt
- (打印版)9月25日地理周练公开课教案教学设计课件资料.docx
文档评论(0)