資源簡介 (共24張PPT)Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.少兒編程課神奇的排序增強運算符/=-=*=+=a=1a/=1print(a)a=1a-=1print(a)a=1a*=1print(a)a=1a+=1print(a)雙重循環語句for 變量1 in 可迭代內容:循環體1…for 變量2 in 可迭代內容:循環體2…for x in range(1,10):line=''for y in range(1,x+1):line += str(y)+'*'+str(x)+'='+str(x*y)+' 'print(line)排序問題按大小順序排列數字利用循環生成一個有5個數字的列表。2. 將數字按照從小到大的順序排列例如:列表中的數字為: [ 83, 20, 51, 82, 55 ],排序后的數字為: [ 20, 51, 55, 82, 83 ]按大小順序排列數字排序需要進行多輪,在每一輪排序中都會挑選出候選數字中最大的一個,放到本輪排序所有數字的最后。第一輪排序待排序的數字為全部5個數字,比較時采用兩兩比較法。兩個數字中,如果左邊數字大于右邊數字,則兩個數字互換;如果左邊數字不大于右邊數字,則不互換位置。第一輪第一次比較[20, 83, 51, 82, 55 ],因為左側的83大于20,所以兩者交換,此時數字順序為:[20, 83, 51, 82, 55 ]第一輪第二次比較[20, 83, 51, 82, 55 ],因為左側的83大于51,所以兩者交換,此時數字順序為:[20, 51, 83, 82, 55 ]第一輪第三次比較[20, 51, 83, 82, 55 ],因為左側的83大于82,所以兩者交換,此時數字順序為:[20, 51, 82, 83, 55 ]第一輪第四次比較[20, 51, 82, 83, 55 ],因為左側的83大于55,所以兩者交換,此時數字順序為:[20, 51, 82, 55, 83 ]第二輪排序經過了第一輪排序后,我們已經把5個數字中最大的數字放到了最后,第二輪待排序的數字為剩下的4個數字。比較時繼續采用兩兩比較法。第二輪第一次比較[20, 51, 82, 55, 83 ],因為左側的20不大于51,所以兩者不交換第二輪第二次比較[20, 51, 82, 55, 83 ],因為左側的51不大于82,所以兩者不交換第二輪第三次比較[20, 51, 82, 55, 83 ],因為左側的82大于55,所以兩者交換,此時數字順序為:[20, 51, 55, 82, 83 ]第三輪排序經過了第二輪排序后,我們已經把5個數字中最大的2個數字放到了最后,第三輪待排序的數字為剩下的3個數字。比較時繼續采用兩兩比較法。第三輪第一次比較[20, 51, 55, 82, 83 ],因為左側的20不大于51,所以兩者不交換第三輪第二次比較[20, 51, 55, 82, 83 ],因為左側的51不大于55,所以兩者不交換第四輪排序經過了第三輪排序后,我們已經把5個數字中最大的3個數字放到了最后,第四輪待排序的數字為剩下的2個數字。比較時繼續采用兩兩比較法。第四輪第一次比較[20, 51, 55, 82, 83 ],因為左側的20大于51,所以兩者不交換最終,5個數字四輪比較就可以得到最終的結果[ 20, 51, 55, 82, 83 ],每一輪兩兩比較的次數各不相同,每一輪比較次數都在減少。代碼實現from random import randintm=[]for x in range(5): #生成有5個隨機數的列表n=randint(1,100)m.append(n)print(m) #打印生成的列表for x in range(4): #需要4輪交換for y in range(4-x): #每輪交換的次數都在減少if m[y]>m[y+1]: #如果左側大于右側數字,兩者交換m[y],m[y+1]=m[y+1],m[y]print(m)按從大到小排序數字利用循環生成一個有10個數字的列表。按數字從大到小的順序排列。例如:列表中數字:[ 70, 35, 85, 16, 9, 21, 37, 33, 60, 39 ]排序后數字:[ 85, 70, 60, 39, 37, 35, 33, 21, 16, 9 ]代碼實現from random import randintm=[]for x in range(10): #生成有10個隨機數的列表n=randint(1,100)m.append(n)print(m)for x in range(9): #需要9輪交換for y in range(9-x): #每輪交換的次數都在減少if m[y]m[y],m[y+1]=m[y+1],m[y]print(m)排序排序是計算機內經常進行的一種操作,其目的是將一組“無序”的記錄序列調整為“有序”的記錄序列。我們剛才介紹的排序方法稱為“冒泡排序”法。計算機科學家們形成了多種排序的方法,除了“冒泡排序”法之外還有:“選擇排序”,“插入排序”,“歸并排序”,“快速排序”等排序方法。選擇排序用選擇排序排列數字利用循環生成一個有5個數字的列表。2. 將數字按照從小到大的順序排列例如:列表中的數字為: [ 83, 20, 51, 82, 55 ]排序后的數字為: [ 20, 51, 55, 82, 83 ]利用雙重循環進行選擇排序外層循環決定排序的輪次,內層循環進行每一輪次的排序3. 選擇排序的關鍵點在于每一輪排序后,都會挑選出本輪排序中最符合要求的內容放入指定的位置選擇排序的要點:第一輪排序待排序的數字為全部5個數字,比較時采用兩兩比較法。比較雙方的左側數字總是第一個數字。如果左邊數字大于右邊數字,則兩個數字互換;如果左邊數字不大于右邊數字,則不互換位置。第一輪第一次比較[83, 20, 51, 82, 55 ],因為左側的83大于20,所以兩者交換,此時數字順序為:[20, 83, 51, 82, 55 ]第一輪第二次比較[20, 83, 51, 82, 55 ],因為左側的20不大于51,所以兩者不交換第一輪第三次比較[20, 83, 51, 82, 55 ],因為左側的20不大于82,所以兩者不交換第一輪第四次比較[20, 83, 51, 82, 55 ],因為左側的20大于55,所以兩者不交換第二輪排序經過了第一輪排序后,我們已經把5個數字中最小的數字放到了第一個,第二輪待排序的數字為剩下的4個數字。比較時繼續采用兩兩比較法。比較雙方的左側數字總是第二個數字。如果左邊數字大于右邊數字,則兩個數字互換;如果左邊數字不大于右邊數字,則不互換位置。第二輪第一次比較[20, 83, 51, 82, 55 ],因為左側的83大于51,所以兩者交換,此時數字順序為:[20, 51, 83, 82, 55 ]第二輪第二次比較[20, 51, 83, 82, 55 ],因為左側的51不大于82,所以兩者不交換第二輪第三次比較[20, 51, 83, 82, 55 ],因為左側的51不大于55,所以不兩者交換第三輪排序經過了第二輪排序后,我們已經把5個數字中最小的兩個數字放到了前二個,第三輪待排序的數字為剩下的3個數字。比較時繼續采用兩兩比較法。比較雙方的左側數字總是第三個數字。如果左邊數字大于右邊數字,則兩個數字互換;如果左邊數字不大于右邊數字,則不互換位置。第三輪第一次比較[20, 51, 83, 82, 55 ],因為左側的83大于82,所以兩者交換,此時數字順序為:[20, 51, 82, 83, 55 ]第三輪第二次比較[20, 51, 82, 83, 55 ],因為左側的82大于55,所以兩者交換,此時數字順序為:[20, 51, 55, 83, 82 ]第四輪排序經過了三輪排序后,我們已經把5個數字中最小的三個數字放到了前三個,第四輪待排序的數字為剩下的2個數字。比較時繼續采用兩兩比較法。比較雙方的左側數字總是第四個數字。如果左邊數字大于右邊數字,則兩個數字互換;如果左邊數字不大于右邊數字,則不互換位置。第四輪第一次比較[20, 51, 55, 83, 82 ],因為左側的83大于82,所以兩者交換,此時數字順序為:[20, 51, 55, 82, 83 ]第四輪排序經過了三輪排序后,我們已經把5個數字中最小的三個數字放到了前三個,第四輪待排序的數字為剩下的2個數字。比較時繼續采用兩兩比較法。比較雙方的左側數字總是第四個數字。如果左邊數字大于右邊數字,則兩個數字互換;如果左邊數字不大于右邊數字,則不互換位置。第四輪第一次比較[20, 51, 55, 83, 82 ],因為左側的83大于82,所以兩者交換,此時數字順序為:[20, 51, 55, 82, 83 ]最終,5個數字四輪比較就可以得到最終的結果[ 20, 51, 55, 82, 83 ],每一輪兩兩比較的次數各不相同,每一輪比較次數都在減少。代碼實現from random import randintm=[]for x in range(5): #生成有5個隨機數的列表n=randint(1,100)m.append(n)print(m) #打印生成的列表for x in range(4): #需要4輪交換for y in range(x+1,5): #每輪交換的次數都在減少if m[x]>m[y]: #如果左側大于右側數字, 兩者交換m[x],m[y]=m[y],m[x]print(m) 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫