所謂氣泡排序就是:將乙個數列中的數字兩兩之間進行比較,如果第乙個元素大於或小於第二個元素,那麼就將兩個元素位置交換,然後這個小或大值再往下兩兩比較,使最大或最小值慢慢浮到數列的最頂端,這樣的排序演算法我們稱之為氣泡排序。
(1)首先要獲取乙個數列,或者說乙個容器,那麼len(容器) >= 2,否則我想排序就沒有意義
(2)你要對乙個數列中的數字元素進行排序,然後兩兩之間要進行比較。因為是兩兩之間進行比較,那麼最後比較的次數就應當為 len(list) -1 次,那麼這個外迴圈的作用就是設定比較的次數
(3)接下來必須要有乙個內迴圈,那麼這個內迴圈就是操控元素之間比較的(通過索引取值比較),並且內迴圈比較完就要拿到乙個極端值(即最大最小值),拿到以後我們就不能動這個元素了,接下來只比較剩下的元素,那麼內迴圈的次數就應為 len(list) -1 - i(外迴圈的值)。
(4)通過內迴圈,我們可以拿到每一次的索引,並且拿到每一次的索引,我們要與下乙個索引的值作比較,並且根據降序或者公升序(即大於等於號)做出判斷。
(5)當判斷結果成立,那麼我們就要將相鄰的兩個元素做交換,最終使得每次的極端值浮出水面
(6)最終我們不必返回該列表,因為我們已經交換了位置,也就是已經排好了序
def
sort
(list):
# 當列表的長度大於2排序才有意義
iflen
(list
)>2:
# 外迴圈的次數為列表中元素兩兩比較的次數
for time in
range
(len
(list)-
1):# 由於每次比較完都會將最大元素放置到最後,那麼排好序的元素就不能動,只能動前邊沒有排好的
# 索引每次必須減去外迴圈遍歷的值
for index in
range
(len
(list)-
1- time)
:# 當第乙個元素大於它後邊的元素
iflist
[index]
>
list
[index +1]
:# 那麼就交換位置
list
[index]
,list
[index +1]
=list
[index +1]
,list
[index]
else
:print
("列表中元素長度不足以排序"
)if __name__ ==
'__main__'
: mylist =[34
,565
,21332
,8979
,2344
,8989,1
] sort(mylist)
print
(mylist)
執行結果:
[1,
34,565,
2344
,8979
,8989
,21332
]process finished with exit code 0
Python排序演算法 氣泡排序
def bubblesort seq length len seq for i in range length for j in range length 1,i,1 if seq j 1 seq j seq j 1 seq j seq j seq j 1 if name main seq 2,9,...
Python氣泡排序演算法
coding utf 8 氣泡排序演算法 import random fenshu int input 請輸入考試滿分 renshu int input 請輸入考試人數 sortsre input 倒敘 正序 請選擇 y n while sortsre y and sortsre n print 您...
Python氣泡排序演算法
氣泡排序,一種簡單的排序演算法.重複的訪問要排序數列,如果他們的順序錯誤,就把位置交換過來,直到沒有需要交換.這個演算法的由來是因為越小的元素會經由交換會慢慢的浮到數列的頂端.冒泡演算法的運用如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾...