思路:
3 5 1 6 2
第一次:找到這些書中最大的乙個,並把它放到最後
3、5找到大的數放到第二個位置1、5
5、1找到大的數放到第三個位置1、5、1
5、6找到大的數放到第四個位置
2、6找到大的數放到第五個位置
第五個位置就是最大的
#encoding=utf-8
a=[3,5,1,6,2]
for i in range(len(a)-1):
if a[i] > a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print ("a:",a)
d:\test\pytyon3>py -3 a.py
a: [3, 1, 5, 2, 6]
找到最大值了,現在開始找次大值
分析過程:
3 5 1 6 2
第一次:找到這些數中最大的乙個,並把它放最後。
3、5找到大的數放到第二個位置
5、1找到大的數放到第三個位置
5、6找到大的數放到第四個位置
2、6找到大的數放到第五個位置
第五個位置就是最大的。
a,b = b,a
temp=a
a=bb=temp
a= [3,5,1,6,2]
for i in range(len(a)-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print(a[-1])
找最大值了,現在次大值,次大值放在倒數第二的位置。
a= [3,5,1,2,6]
for i in range(len(a)-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print(a[-1])
找第三個最大的數,放到倒數第三個。
a= [3,1,2,5,6]
for i in range(len(a)-1-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print(a[-3])
找到第四大的書,放到倒數第四個。
for i in range(len(a)-1-1-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print(a[-4])
剩下的最後乙個,就是最小的數,放到第乙個
**:a=[3,5,1,2,6]
print(a)
for i in range(len(a)-1):#0,1,2,3
for j in range(len(a)-1-i):
if a[j] > a[j+1]:
a[j],a[j+1] = a[j+1],a[j]
print ("a:",a)
結果:
d:\test\pytyon3>py -3 a.py
[3, 5, 1, 2, 6]
a: [1, 2, 3, 5, 6]
怎麼理解:
第一次內層迴圈的結果就是找到最大的值
第二次內層迴圈的結果就是找到次大的值,本次將忽略最後乙個元素的比較
第二次內層迴圈的結果就是找到第三大的值,本次講忽略倒數第二個元素和最後乙個元素的比較
排序總結 氣泡排序
created by liyuanshuo on 2017 3 17.include bubble sort.h 基本思想 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較 大的數往下沉,較小的往上冒。即 每當兩相鄰的數比較後發現它們的排序與排序要...
氣泡排序總結
氣泡排序 氣泡排序演算法的運作如下 從後往前 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數...
python的氣泡排序
氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來,直到不再需要交換,也就是說該數列已經排序完成。按照定義,兩兩排序,遇到第一次交換就重新遍歷,從第乙個數開始,直到不再需要交換,排序完成。在這裡,分享三種氣泡...