阿摩線上測驗 登入

申論題資訊

試卷:108年 - 108 普通考試_統計、資訊處理:資料處理概要#77499
科目:資料處理
年份:108年
排序:0

申論題內容

三、請舉例說明氣泡排序(Bubble Sort)與合併排序(Merge Sort)之流程, 並解釋此兩種排序法使用前提條件之差異為何?(25 分)

詳解 (共 2 筆)

詳解 提供者:114年高考上榜

氣泡排序是一種簡單的排序算法,它遍歷數組,比較相鄰的兩個元素,如果它們的順序錯誤,則交換它們的位置。這樣,每次遍歷都會讓一個數字“浮”到最上面。遍歷完整個數組後,最大的數字就會被排到最後面,接著再對剩下的數字進行相同的操作。直到整個數組都有序為止。

 
以下是一個氣泡排序的示例:
 
假設有一個數組:[5, 3, 8, 4, 2]
 
第一次遍歷:[3, 5, 4, 2, 8]
第二次遍歷:[3, 4, 2, 5, 8]
第三次遍歷:[3, 2, 4, 5, 8]
第四次遍歷:[2, 3, 4, 5, 8]
 
合併排序是一種分治法的排序算法。它將一個數組拆分為兩個子數組,然後遞歸地對每個子數組進行排序,最後再將兩個有序的子數組合併成一個有序的數組。
 
以下是一個合併排序的示例:
 
假設有一個數組:[5, 3, 8, 4, 2]
 
第一步:拆分數組為兩個子數組:[5, 3, 8] 和 [4, 2]
第二步:對每個子數組進行排序
 
排序 [5, 3, 8]:[3, 5, 8]
排序 [4, 2]:[2, 4]
第三步:合併兩個有序的子數組 [3, 5, 8] 和 [2, 4],得到 [2, 3, 4, 5, 8]

在實際應用中,氣泡排序通常用於小數據集的排序,而合併排序通常用於大數據集的排序
因為氣泡排序的時間複雜度為O(n^2),而合併排序的時間複雜度為O(nlogn)。此外,氣泡排序需要額外的空間進行交換,因此其空間複雜度為O(1),而合併排序需要額外的空間來存儲臨時數據,因此其空間複雜度為O(n)。
詳解 提供者:YABE
氣泡排序適合在資料較簡單的環境,易於被人理解
合併排序除了需要待排序的空間外,還需要一倍額外的儲存空間來存放每次合併之前的暫存資料