中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

小學課后服務 Python少兒編程 基礎篇:4-神奇的排序 課件 (24張PPT)

資源下載
  1. 二一教育資源

小學課后服務 Python少兒編程 基礎篇:4-神奇的排序 課件 (24張PPT)

資源簡介

(共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=1
a/=1
print(a)
a=1
a-=1
print(a)
a=1
a*=1
print(a)
a=1
a+=1
print(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 randint
m=[]
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 randint
m=[]
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 randint
m=[]
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)

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 互助| 日照市| 德清县| 榆中县| 中江县| 汽车| 托克逊县| 故城县| 荥经县| 新竹县| 江川县| 平遥县| 天长市| 汉沽区| 肇州县| 冷水江市| 天津市| 永济市| 虹口区| 含山县| 鄢陵县| 玉环县| 景德镇市| 宁德市| 阳泉市| 竹北市| 修文县| 聊城市| 丰城市| 区。| 汶上县| 威宁| 菏泽市| 榆林市| 镇江市| 光泽县| 奉新县| 龙泉市| 汝南县| 嵊泗县| 张家口市|