阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 司法特種考試_三等_檢察事務官電子資訊組:程式語言#110333
科目:程式語言
年份:111年
排序:0

申論題內容

二、請使用 C/C++、Java 或 Python 任一程式語言撰寫程式,將某陣列中的 數字資料 5, 3, 8, 6, 7, 2 以氣泡排序法由小而大排序。 (25 分)

詳解 (共 2 筆)

詳解 提供者:hchungw
說明
C:
使用 for 迴圈進行比較和交換。
定義了一個 printArray 函數來輸出排序後的陣列。
C++:
與 C 的實現類似,但使用了 iostream 進行輸出。
Java:
使用類和靜態方法來實現。
bubbleSort 方法進行排序,printArray 方法輸出結果。
Python:
使用 def 定義函數。
bubble_sort 函數進行排序,print_array 函數輸出結果。
這些程式都會將陣列 [5, 3, 8, 6, 7, 2] 排序為 [2, 3, 5, 6, 7, 8],並輸出結果。
詳解 提供者:Odin Angus

Python

def swap(arr:list, i:int, j:int):
    temp = arr[i]
    arr[i] = arr[j]
    arr[j] = temp

def bubbleSort(arr:list):
    n = len(arr) - 1
    while n >= 1:
        for i in range(n):
            if arr[i] > arr[i+1]: swap(arr, i, i+1)
        n -= 1 #避免不必要的比較,因為第一次執行後最末端的值是最大

data = [5,3,8,6,7,2]
bubbleSort(data)
print(data) #[2,3,5,6,7,8]