Download presentation
Presentation is loading. Please wait.
2
計算機概論 - 排序 1 MSLee2002@Yesmslee@nctu 排序 (Sorting) 李明山 編撰 ※手動換頁
3
計算機概論 - 排序 2 MSLee2002@Yesmslee@nctu排序的意義 將資料項目依特定之順序排列,如 依數值由大而小或由小而大排列 依英文字母順序排列 依中文字筆劃順序排列 依日期先後順序排列 按成績高低排列
4
計算機概論 - 排序 3 MSLee2002@Yesmslee@nctu排序的用途 資料查詢 (Query) 資料編序 (Ranking) 資料分類 (Classify) 資料比對 (Comparing)
5
計算機概論 - 排序 4 MSLee2002@Yesmslee@nctu排序的分類 依資料儲存位置的差異可區分為兩種: 內部排序 (Internal sorting) 資料全部儲存在主記憶體內作排序 資料量小 外部排序 (External sorting) 資料儲存在輔助記憶體內作排序 資料量大
6
計算機概論 - 排序 5 MSLee2002@Yesmslee@nctu氣泡排序法的要領 將串列資料由上往下比較相鄰兩個項目 ,如果順序不對就將之互換。 一循環的比較互換並不能完成排序,必 須將其結果進行次一循環的比較互換。 一循環的比較若無互換的狀況,即是排 序完成。
7
計算機概論 - 排序 6 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 743295186743295186 123456789123456789
8
計算機概論 - 排序 7 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 743295186743295186
9
計算機概論 - 排序 8 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 743295186743295186 7474
10
計算機概論 - 排序 9 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 743295186743295186 7474 ×
11
計算機概論 - 排序 10 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 4747 7474 ×
12
計算機概論 - 排序 11 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 7373
13
計算機概論 - 排序 12 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 7373 ×
14
計算機概論 - 排序 13 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 7373 × 437295186437295186 3737
15
計算機概論 - 排序 14 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 7272
16
計算機概論 - 排序 15 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 7272 ×
17
計算機概論 - 排序 16 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 7272 × 432795186432795186 2727
18
計算機概論 - 排序 17 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 7979
19
計算機概論 - 排序 18 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 7979 ○
20
計算機概論 - 排序 19 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 7979 432795186432795186 7979 ○
21
計算機概論 - 排序 20 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 9595
22
計算機概論 - 排序 21 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 9595 ×
23
計算機概論 - 排序 22 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 9595 × 432759186432759186 5959
24
計算機概論 - 排序 23 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 9191
25
計算機概論 - 排序 24 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 9191 ×
26
計算機概論 - 排序 25 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 9191 × 432751986432751986 1919
27
計算機概論 - 排序 26 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 432751986432751986 9898
28
計算機概論 - 排序 27 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 432751986432751986 9898 ×
29
計算機概論 - 排序 28 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 432751986432751986 9898 × 432751896432751896 8989
30
計算機概論 - 排序 29 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 432751986432751986 432751896432751896 9696
31
計算機概論 - 排序 30 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 432751986432751986 432751896432751896 9696 ×
32
計算機概論 - 排序 31 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 432751986432751986 432751896432751896 9696 × 432751869432751869 6969
33
計算機概論 - 排序 32 MSLee2002@Yesmslee@nctu 氣泡排序法 (Bubble sort) 473295186473295186 743295186743295186 437295186437295186 432795186432795186 432795186432795186 432759186432759186 432751986432751986 432751896432751896 432751869432751869
34
計算機概論 - 排序 33 MSLee2002@Yesmslee@nctu 743295186743295186 432751869432751869
35
計算機概論 - 排序 34 MSLee2002@Yesmslee@nctu 432751869432751869 743295186743295186 324517689324517689 234156789234156789 231456789231456789 213456789213456789 123456789123456789 123456789123456789 01234567
36
計算機概論 - 排序 35 MSLee2002@Yesmslee@nctu氣泡排序法的要領(重複) 將串列資料由上往下比較相鄰兩個項目 ,如果順序不對就將之互換。 一循環的比較互換並不能完成排序,必 須將其結果進行次一循環的比較互換。 一循環的比較若無互換的狀況,即是排 序完成。
37
計算機概論 - 排序 36 MSLee2002@Yesmslee@nctu ALGORITHM BUBBLE_SORT INPUT N INPUT N INPUT LIST(1:N) INPUT LIST(1:N) REPEAT REPEAT NO_EXCHANGES ← TRUE NO_EXCHANGES ← TRUE FOR I ← 1 TO N-1 DO FOR I ← 1 TO N-1 DO IF LIST(I) > LIST(I+1) THEN IF LIST(I) > LIST(I+1) THEN TEMP ← LIST(I) TEMP ← LIST(I) LIST(I) ← LIST(I+1) LIST(I) ← LIST(I+1) LIST(I+1) ← TEMP LIST(I+1) ← TEMP NO_EXCHANGES ← FALSE NO_EXCHANGES ← FALSE END IF END IF END FOR END FOR UNTIL NO_EXCHANGES UNTIL NO_EXCHANGES OUTPUT LIST(1:N) OUTPUT LIST(1:N) END BUBBLE_SORT
38
計算機概論 - 排序 37 MSLee2002@Yesmslee@nctu Ming-Shang Lee CopyRight 2001 ALGORITHM BUBBLE_SORT INPUT N INPUT LIST(1:N) REPEAT NO_EXCHANGES ← TRUE FOR I ← 1 TO N-1 DO IF LIST(I) > LIST(I+1) THEN TEMP ← LIST(I) LIST(I) ← LIST(I+1) LIST(I+1) ← TEMP NO_EXCHANGES ← FALSE END IF END FOR UNTIL NO_EXCHANGES OUTPUT LIST(1:N) END BUBBLE_SORT TEMP ← LIST(I) LIST(I) ← LIST(I+1) LIST(I+1) ← TEMP LIST(I) ←→ LIST(I+1)
39
計算機概論 - 排序 38 MSLee2002@Yesmslee@nctu ALGORITHM BUBBLE_SORT INPUT N INPUT LIST(1:N) REPEAT NO_EXCHANGES ← TRUE FOR I ← 1 TO N-1 DO IF LIST(I) > LIST(I+1) THEN TEMP ← LIST(I) LIST(I) ← LIST(I+1) LIST(I+1) ← TEMP NO_EXCHANGES ← FALSE END IF END FOR UNTIL NO_EXCHANGES OUTPUT LIST(1:N) END BUBBLE_SORT 虛擬碼 (pseudocode)
40
計算機概論 - 排序 39 MSLee2002@Yesmslee@nctu氣泡排序法的評價 簡單性 有效性
41
計算機概論 - 排序 40 MSLee2002@Yesmslee@nctu 謝爾 (Shell) 排序法的要領 將串列資料以先大後小的跨距分組比較 。 採用氣泡排序法對各組資料排序。 跨距第一次設為資料量的一半,每次減 為一半,直到 0 為止。
42
計算機概論 - 排序 41 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 N = 8
43
計算機概論 - 排序 42 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 N = 8
44
計算機概論 - 排序 43 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 17 10 38 30 83 25 52 49 83 25 38 49 17 10 52 30 N = 8
45
計算機概論 - 排序 44 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 N = 8
46
計算機概論 - 排序 45 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 N = 8
47
計算機概論 - 排序 46 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8
48
計算機概論 - 排序 47 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8 -4 -2
49
計算機概論 - 排序 48 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8 -4 +2 +1
50
計算機概論 - 排序 49 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8 0 0 -2
51
計算機概論 - 排序 50 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8 -4 0 2
52
計算機概論 - 排序 51 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8 0 +4
53
計算機概論 - 排序 52 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8 0 +4 +1
54
計算機概論 - 排序 53 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8 0 +2 -2
55
計算機概論 - 排序 54 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 17 10 38 30 83 25 52 49 17 10 38 25 52 30 83 49 10 17 25 30 38 49 52 83 N = 8 +4 -2 +2
56
計算機概論 - 排序 55 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 64 N = 9
57
計算機概論 - 排序 56 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 64 17 10 38 30 64 25 52 49 83 N = 9
58
計算機概論 - 排序 57 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 64 17 10 38 30 64 25 52 49 83 N = 9
59
計算機概論 - 排序 58 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 64 17 10 38 30 64 25 52 49 83 17 10 38 25 52 30 64 49 83 N = 9
60
計算機概論 - 排序 59 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 64 17 10 38 30 64 25 52 49 83 17 10 38 25 52 30 64 49 83 N = 9
61
計算機概論 - 排序 60 MSLee2002@Yesmslee@nctu 謝爾排序法 (Shell sort) 83 25 38 49 17 10 52 30 64 17 10 38 30 64 25 52 49 83 17 10 38 25 52 30 64 49 83 10 17 25 30 38 49 52 64 83 N = 9
62
計算機概論 - 排序 61 MSLee2002@Yesmslee@nctu Ming-Shang Lee CopyRight 2001 快速排序法 (Quicksort)
63
計算機概論 - 排序 62 MSLee2002@Yesmslee@nctu排序法的分類 插入排序 (Insertion sort) 交換排序 (Transposition sort) 選擇排序 (Selection sort) 分散排序 (Distribution sort, Radix sort) 合併排序 (Merge sort)
64
計算機概論 - 排序 63 MSLee2002@Yesmslee@nctu 插入排序 (Insertion sort) 48 23 25 39 49 97 10 17 30 38 64 未排序已排序
65
計算機概論 - 排序 64 MSLee2002@Yesmslee@nctu 交換排序 (Transposition sort) 氣泡排序法 (Bubble sort) 謝爾排序法 (Shell sort) 堆積排序法 (Heapsort) 快速排序法 (Quicksort)
66
計算機概論 - 排序 65 MSLee2002@Yesmslee@nctu 選擇排序 (Selection sort) 48 53 75 39 49 97 10 17 30 38 未排序已排序 最小值
67
計算機概論 - 排序 66 MSLee2002@Yesmslee@nctu 分散排序 (Distribution sort, Radix sort) 4 18 23 15 29 9 17 22 6 496496 469469 15 17 18 22 23 29 18 15 17 23 29 22
68
計算機概論 - 排序 67 MSLee2002@Yesmslee@nctu 合併排序 (Merge sort) 的要領 兩組已由小到大排序之串列資料,開始時各以指標 指到第一筆,比較兩組指標指到的資料,以較小者 抽出至新的串列,該組指標隨之下移一筆,隨後再 比較兩組指標指到的資料,重覆相同步驟,直到其 中一組之資料已全部抽出,則將另一組資料依序抽 出至新的串列而結束。 欲排序之串列資料,可分成等量(或接近等量)之 兩組,再個別分成兩組以相同要領完成排序,即可 再用此要領合併成一個排序的串列資料。
69
計算機概論 - 排序 68 MSLee2002@Yesmslee@nctu Ming-Shang Lee CopyRight 2001 合併排序 (Merge sort) 10 30 38 49 69 71 已排序 10 17 30 38 41.. 已排序 17 41 75 86 89 97 已排序
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.