羅德興老師的教學歷程檔案 - 112-2 資料結構 (2024年) - Unit 9 排序 (Sorting)
 

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


歷程檔案 Portfolio

    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)     #呼叫排序後的結果之副程式
    全部共 4則留言
    周育賢06-26 10:44:9-1https://colab.research.google.com/drive/1XQsr1OvNJKn5KA6FU_-6pS3a_69JHLEO
    周育賢06-26 10:45:9-2https://colab.research.google.com/drive/1cnJ3TBrMvngCzsxUluRfYKhlFoCEkR84
    周育賢06-26 10:45:9-3https://colab.research.google.com/drive/1BnuC2Op3G66YoqD769-akJ9TCmi1-FL3
    廖翊如06-26 11:06:9-1 https://colab.research.google.com/drive/1L8LzupKCSVHqJxR3T5zwvwsBTcc482he
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

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