#!/usr/bin/env python
# -*- coding:utf8 -*-
def bubble_sort(alist):
# 結算列表的長度
n = len(alist)
# 外層迴圈控制從頭走到尾的次數
for j in range(n - 1):
# 用乙個count記錄一共交換的次數,可以排除已經是排好的序列
count = 0
# 內層迴圈控制走一次的過程
for i in range(0, n - 1 - j):
# 如果前乙個元素大於後乙個元素,則交換兩個元素(公升序)
# 氣泡排序要排序n個數,由於每遍歷一趟只排好乙個數字,
# 則需要遍歷n - 1趟,才能將n個數字排好;
# 所以最外層迴圈是要迴圈n - 1次
# # 每次排序乙個數字的時候,假設它前面已經有i個數字已經排好了,由於將n個數字
# 排好需要n - 1次, 此時已經排好i個數字了, 排下乙個數字需要遍歷n - 1 - i次
# 排第乙個數, n - 1次
# 排第2個數, n - 2次
# ...
# 排第i個數, n - i次
if alist[i] > alist[i + 1]:
# 交換元素
alist[i], alist[i + 1] = alist[i + 1], alist[i]
# 記錄交換的次數
count += 1
# count == 0 代表沒有交換,序列已經有序
if 0 == count:
break
if __name__ == '__main__':
list1 = [54, 26, 93, 77, 44, 31, 44, 55, 20]
print("原列表為:%s" % list1)
bubble_sort(list1)
print("新列表為:%s" % list1)
氣泡排序(python實現)
coding utf 8 created on tue jul 4 11 37 19 2017 data list cnt num all 0 def data in func data list,cnt num all while true judge continue input 請選擇是輸入資...
氣泡排序(Python實現)
氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,一次比較兩個相鄰的元素,如果他們的順序 如從大到小 首字母從a到z 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。這個演算法的名字由來是因為...
Python實現氣泡排序
氣泡排序 bubble sort 是最容易理解的排序演算法之一,但是執行效率有點低。冒泡過程 對待排序部分 假設有m個元素 從頭開始進行兩兩比較,如果第乙個比第二個大 公升序 就交換他們兩個。這樣本輪排序結束後就可以保證值最大的元素在最右邊,那麼下次只需要對前面 m 1 個數進行冒泡。完整的氣泡排序...