Python排序 氣泡排序

2021-10-10 11:47:48 字數 2120 閱讀 2150

##排序

#氣泡排序

'''氣泡排序演算法的原理如下:

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

'''#方法一

a_list=[6,5,4,3,2,1,7]

for t in range(len(a_list)-1):#控制前後比較,迴圈輪數n-1

for j in range(0,len(a_list)-1):#前後元素

al=a_list[j]

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

a_list[j]=a_list[j+1]#轉換位置

a_list[j+1]=al#後面元素 變到前面

print(a_list)

#方法二(好理解)

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

def maopao(list):

n=len(list)

#n-1,n是列表總共有n個元素,要進行n-1輪比較,第一輪,需要n-1次比較

for i in range(n-1):#前乙個元素

for j in range(i+1,n):#後乙個元素

if list[i]>list[j]:

list[i],list[j]=list[j],list[i]#交換前後元素a,b=b,a交換倆個變數的值

#list[j] = list[i] 交換元素,分開寫是錯誤的

#list[i] = list[j]

if __name__ == '__main__':

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

maopao(list)

print(list)

列印結果:

[1, 2, 3, 4, 5, 6, 7]

[1, 2, 3, 4, 5, 6]

##排序

#氣泡排序

'''氣泡排序演算法的原理如下:

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

'''#方法一

a_list=[6,5,4,3,2,1,7]

for t in range(len(a_list)-1):#控制前後比較,迴圈輪數n-1

for j in range(0,len(a_list)-1):#前後元素

al=a_list[j]

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

a_list[j]=a_list[j+1]#轉換位置

a_list[j+1]=al#後面元素 變到前面

print(a_list)

#方法二(好理解)

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

def maopao(list):

n=len(list)

#n-1,n是列表總共有n個元素,要進行n-1輪比較,第一輪,需要n-1次比較

for i in range(n-1):#前乙個元素

for j in range(i+1,n):#後乙個元素

if list[i]>list[j]:

list[i],list[j]=list[j],list[i]#交換前後元素a,b=b,a交換倆個變數的值

#list[j] = list[i] 交換元素,分開寫是錯誤的

#list[i] = list[j]

if __name__ == '__main__':

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

maopao(list)

print(list)

列印結果:

[1, 2, 3, 4, 5, 6, 7]

[1, 2, 3, 4, 5, 6]

排序 氣泡排序 Python

依次比較相鄰兩元素的大小,順序與要求的不一致就交換。這樣會把待排序序列中的最大 最小 元素不斷 浮 到最右端,最終完成公升序或降序排列。對序列 2,4,1,3,6,5 按公升序排列 只記錄有交換發生的迴圈 第一次迴圈 2,4,1,3,6,5 2,1,4,3,6,5 2,1,3,4,6,5 2,1,3...

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氣泡排序 選擇排序

氣泡排序 1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個的位置。2 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。完成一次完整的比較和交換位置時,最後的元素應該會是最大的數。3 針對所有的元素重複以上的步驟,除了最後乙個。4 持續每次對越來越少的元素重複上面的步驟,直到沒有任...