羅德興老師的教學歷程檔案 - 111-2 DS & Algorithm - 排序演算法
 

企業資訊與管理系
助理教授/日導
羅德興


歷程檔案 Portfolio

    排序演算法

    Bubble sort (CH 08)

    # [download]





    # This is ch08-2.py by 0000000XXX (學號) YYYYYY(姓名) on 2020/06/19
    # 此為 展示 Bubble sort (氣泡排序法) 的操作
    # 程式的前兩行務必註明:學號、姓名、題號、及用途
    import random
    print("===============程式描述========================")
    print("= 程式名稱:ch8-2.py =")
    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) # 印出陣列 之副程式
     
    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) #呼叫排序後的結果之副程式



    '''
    作業8:
    # EX8-1. 仿照本範例,寫出一 選擇排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數。
    # EX8-2. 仿照本範例,寫出一 插入排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數。
    # EX8-3. 仿照本範例,寫出一 快速排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數。
    # EX8-4. 仿照本範例,寫出一 Shell 排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數。
    # EX8-5. 仿照本範例,寫出一 合併排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數。
    # EX8-6. 仿照本範例,寫出一 Radix 排序法 的程式,說明其概念、方法,並列出其交換與比較的過程和次數。

    # EX9-7. 仿照本範例,寫出一 二分搜尋法 的程式,說明其
    概念、方法,並列出搜尋的過程和次數。
    '''
    全部共 0則留言
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應