經典排序之氣泡排序之Python 初學

2021-09-25 13:51:52 字數 1428 閱讀 6928

氣泡排序key:避免與選擇排序混淆,氣泡排序特有的是,兩兩進行比較。

list=[4,3,1,2,5]

n=len(list)

for i in range(0,n):

for j in range(0,n-i-1):

print('當前j=%d'%(j))

print('j要迴圈的次數為%d,這是第%d次迴圈'%(n-i-1,j+1))

print('比較%d>%d'%(list[j],list[j+1]))

if list[j]>list[j+1]:

list[j],list[j+1]=list[j+1],list[j]

print(list)

else:

print('不滿足')

print('當前排序',list)

print('\n')

print('排序結束')

result:

當前j=0

j要迴圈的次數為4,這是第1次迴圈

比較4>3

[3, 4, 1, 2, 5]

當前j=1

j要迴圈的次數為4,這是第2次迴圈

比較4>1

[3, 1, 4, 2, 5]

當前j=2

j要迴圈的次數為4,這是第3次迴圈

比較4>2

[3, 1, 2, 4, 5]

當前j=3

j要迴圈的次數為4,這是第4次迴圈

比較4>5

不滿足當前排序 [3, 1, 2, 4, 5]

當前j=0

j要迴圈的次數為3,這是第1次迴圈

比較3>1

[1, 3, 2, 4, 5]

當前j=1

j要迴圈的次數為3,這是第2次迴圈

比較3>2

[1, 2, 3, 4, 5]

當前j=2

j要迴圈的次數為3,這是第3次迴圈

比較3>4

不滿足當前排序 [1, 2, 3, 4, 5]

當前j=0

j要迴圈的次數為2,這是第1次迴圈

比較1>2

不滿足當前j=1

j要迴圈的次數為2,這是第2次迴圈

比較2>3

不滿足當前排序 [1, 2, 3, 4, 5]

當前j=0

j要迴圈的次數為1,這是第1次迴圈

比較1>2

不滿足當前排序 [1, 2, 3, 4, 5]

當前排序 [1, 2, 3, 4, 5]

排序結束

對雙層for迴圈的理解也有幫助。

n-i-1:這裡是因為一次迴圈過後,已經排序出了乙個確定的位置,例如[x,x,x,x,5] 已經確定乙個5,所以只需要比較前4個,以此類推。

經典排序之氣泡排序

邊學習邊記載。氣泡排序是經典排序之一,時間複雜度是o n 2 以如下陣列為例 陣列 5 6 3 1 8 7 2 4,以從小到大排序為例 i表示陣列下標,初始化為0 5 6 3 1 8 7 2 4 第一輪是從0到n 1比較,n為陣列的長度 1 首先i 0 比較5,6,由於5 6,所以保持不變 2 i ...

經典排序之氣泡排序

關於排序,是我們經常用到的。目前,就我了解的,應該有 氣泡排序 選擇排序 希爾排序 折半排序 快速排序 堆排序 桶排序 歸併排序 基數排序 其實還有很多,慢慢來吧乙個乙個總結一下,希望在鞏固自己的同時也能夠幫到大家 氣泡排序的原理 以公升序舉例 氣泡排序就是從第乙個數開始和後乙個數比較 如果如果前者...

經典排序之氣泡排序

1.i 0被定為第乙個,後面逐漸比較這個值 1位置,2位置,知道 n 1 位置,第一輪排序結束,最小值被最先固定,開始第二輪,i 在於後面的值進行比較,輪迴往復,直到i n 1,迴圈結束。注 這樣的好處是,最小值被最先固定。public static int bubblesort int arr r...