自己照著書本依葫蘆畫瓢的,有不對的話請多指正
冒泡法如果有n個元素,則需要執行n-1次掃瞄
第一次掃瞄需要進行n-1次比較
假設有5個元素,則共進行 4+3+2+1 = 10 次比較
#-*-coding:gbk-*
num =
0data =
while num !=-1
: num =
int(
input
('please enter a num:\n'))
data.pop(
)print
('the original data is '
)for i in
range
(len
(data)):
print
('%d'
%data[i]
, end =
' ')
print()
for i in
range
(len
(data)-1
,0,-
1):for j in
range
(i):
if data[j]
> data[j +1]
:#兩個數字進行比較,如果前者大於後者則進行交換
data[j]
, data[j+1]
= data[j+1]
, data[j]
print
('第 %d 次掃瞄結果'%(
len(data)
- i)
)for k in
range
(len
(data)):
print
(data[k]
, end =
' ')
print()
print
('最終結果'
如果在某次排序中沒有執行交換操作,可以視為排序最終已經完成
#-*-coding:gbk-*
num =
0data =
while num !=-1
: num =
int(
input
('please enter a num:\n'))
data.pop(
)print
('the original data is '
)for i in
range
(len
(data)):
print
('%d'
%data[i]
, end =
' ')
print()
defbubble
(data)
:for i in
range
(len
(data)-1
,0,-
1): flag =
0for j in
range
(i):
if data[j]
> data[j +1]
: data[j]
, data[j+1]
= data[j+1]
, data[j]
flag +=
1if flag ==0:
break
print
('第 %d 次掃瞄結果'%(
len(data)
- i)
)for k in
range
(len
(data)):
print
(data[k]
, end =
' ')
print()
bubble(data)
print
('最終結果'
用python實現氣泡排序
氣泡排序 冒泡法也稱沉底法,沒相鄰兩個記錄關鍵字比較大小,大的記錄往下沉 也可以小的網上浮 每一遍把最後乙個下沉的位置記下,下一遍只需檢查比較到此位置 到所有記錄都不發生變化時,整個過程結束 每交換一次,記錄減少乙個反序數 有一組資料 83,16,9,96,27,75,42,69,34 在開始時83...
Python學習 實現《氣泡排序法》
演算法思想 step1 將第乙個資料和第二個進行比較,若第乙個資料大於第二的資料,則將第乙個資料 大數 和第二個資料 小數 交換位置。再將第二個資料和第三個比較,若第二個資料大於第三個資料,交換資料。依次類推,直到最大的數排到最後的位置上。第1個迴圈結束。step2 將第乙個資料和第二個進行比較,若...
C和Python實現冒泡法排序
首先我們看冒泡法排序的原理,假設有乙個包含6個數字的陣列 其思路為 每次將相鄰兩個數比較,將小的調到前面,如果有6個數 8,7,5,4,2,0。第一次先將最前面的兩個數8和7對調 看下圖 第二次將第二個數和第三個數 8和5 對調.如此總計進行了5次,得到7 5 4 2 0 8的順序,可以看到 最大的...