二、請使用 C/C++、Java 或 Python 任一程式語言撰寫程式,將某陣列中的 數字資料 5, 3, 8, 6, 7, 2 以氣泡排序法由小而大排序。 (25 分)
詳解 (共 2 筆)
詳解
說明
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],並輸出結果。
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],並輸出結果。
詳解
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]