006Scratch:雙迴圈-氣泡排序法進階

教學影片

<待上傳>

Scratch程式設計與設計流程圖1

Scratch程式設計與設計流程圖2(副程式)

氣泡排序法副程式設計

主程式設計

Python程式設計

程式碼1:直接用Python的排序方法(.sort)

import random

data=[]

num=int(input("請輸入總共要排序幾個數字:"))

for i in range(num):

    data.append(random.randint(1,99))#.append()方法加入串列,指定亂數範圍為1-99。

data.sort()

print(data)

程式碼2:氣泡排序法(顯示每次交換的結果)

import random         

def bubble_sort(data):#將氣泡排序表定義為副程式

    print(data,"原始資料")#先印出未排序的數值

    a=b=len(data)-1#變數a決定大迴圈次數;變數b決定小迴圈次數,每次-1

    for i in range(a):#大迴圈進行的回合次數

        print("\n---第%d回合---" %(i+1))#顯示第n回合

        for j in range(b):#小迴圈進行的次數,b值逐漸變小

            if data[j]>data[j+1]:

                data[j],data[j+1]=data[j+1],data[j]#直接兩個數值互換

            print(data,"第%d次" %(j+1))#印出每次氣泡比較後的結果

        b-=1#每完成一回合,b值減1

    print(data,"氣泡排序完成")#印出排序後的結果

data=[]#定義資料形態為串列

num=int(input("請輸入總共要排序幾個數字:"))

for i in range(num):#填入亂數

    data.append(random.randint(1,99))#.append()方法加入串列,指定亂數範圍為1-99。

bubble_sort(data)#執行副程式

簡化: