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

小學課后服務 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. 主站蜘蛛池模板: 兰西县| 张掖市| 庆元县| 喀什市| 巴林左旗| 靖西县| 深泽县| 项城市| 齐齐哈尔市| 南通市| 万源市| 莱芜市| 安顺市| 稷山县| 木里| 巴中市| 公主岭市| 宁晋县| 平武县| 梁山县| 东阿县| 疏勒县| 湖南省| 萝北县| 鄱阳县| 额尔古纳市| 布拖县| 邢台市| 宁陕县| 日土县| 闸北区| 呼伦贝尔市| 罗田县| 台山市| 南阳市| 开化县| 喀喇沁旗| 北碚区| 峨边| 突泉县| 友谊县|