羅德興老師的教學歷程檔案 - 112-2 資料結構 (2024年) - Unit 9 排序 (Sorting) |
|
|
Unit 9 排序 (Sorting)# This is ds-9-2.ipynb by 0000000XXX (學號) YYYYYY(姓名) on 2023/06/05 # 此為 展示 Bubble sort (氣泡排序法) 的操作 # 程式的前兩行務必註明:學號、姓名、題號、及用途 ''' 作業9 (sorting): # EX9-1. 仿照本範例,寫出一 選擇排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數,以及所花費的時間。 # EX9-2. 仿照本範例,寫出一 插入排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數,以及所花費的時間。 # EX9-3. 仿照本範例,寫出一 快速排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數,以及所花費的時間。 # EX9-4. 仿照本範例,寫出一 Shell 排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數,以及所花費的時間。 # EX9-5. 仿照本範例,寫出一 合併排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數,以及所花費的時間。 # EX9-6. 仿照本範例,寫出一 Radix 排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數,以及所花費的時間。 # EX9-7. 仿照本範例,寫出一 二分搜尋法 的程式,說明其概念、方法,並列出搜尋的過程和次數,以及所花費的時間。 ''' import random print("===============程式描述========================") print("= 程式名稱:ds-9-2.ipynb") print("= 程式目的:Bubble sort (氣泡排序法) =") print("==============================================") A=[] num = input('請輸入排序資料的個數:') m = int(num) def RandomNum(): #自動產生 n 個亂數值 for i in range(1,m+1,1): A.append(random.randint(1,3*m)) for i in range(0,len(A)): print(A[i],end=" ") print() def BubSort(A): #氣泡排序之副程式 n=len(A) for i in range(n-1): # 有 n 個資料,但只要執行 n-1 次 # 從第 1 個開始比較,直到最後一個還沒到最終位置的數字 for j in range(n-i-1): # print ("=== 第 %d 次比較交換:" %j) if (A[j] > A[j+1]): # 兩資料交換位置 Temp = A[j] A[j] = A[j+1] A[j+1] = Temp print ("=== 第 %d 輪比較交換結果:" %i) PrintBubSort(A) # 印出陣列 之副程式 print('\n') def PrintBubSort(A): # 印出陣列 之副程式 for i in range(0,len(A)): print(A[i],end=" ") print() print("=======輸入(自動產生 n 個亂數值)========") print("原陣列的值") RandomNum() #呼叫產生10個亂數值的副程式 BubSort(A) #呼叫選擇排序法的副程式 print("=========輸出(排序後結果)==============") PrintBubSort(A) #呼叫排序後的結果之副程式
|
|
中華科技大學數位化學習歷程 - 意見反應 |