用python實現冒泡法排序(數字公升序)

2021-09-26 21:37:52 字數 2315 閱讀 4022

自己照著書本依葫蘆畫瓢的,有不對的話請多指正

冒泡法如果有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的順序,可以看到 最大的...