冒泡排序(Bubble Sort)是一種典型的交換排序算法,通過交換數(shù)據(jù)元素的位置進行排序。
算法原理:從無序序列頭部開始,進行兩兩比較,根據(jù)大小交換位置,直到最后將最大(?。┑臄?shù)據(jù)元素交換到了無序隊列的隊尾,從而成為有序序列的一部分;下一次繼續(xù)這個過程,直到所有數(shù)據(jù)元素都排好序。算法的核心在于每次通過兩兩比較交換位置,選出剩余無序序列里最大(?。┑臄?shù)據(jù)元素放到隊尾。
Python代碼1:
#Python算法--冒泡排序1
import random
def main(array):
for i in range(1,len(array)):
for j in range(len(array)-i):
if array[j] > array[j+1]:
array[j],array[j+1]=array[j+1],array[j]
print("冒泡排序數(shù)組:",array)
if __name__ == '__main__':
array = []
for i in range(15):
array.append(random.randint(1,1000))
print("隨機生成數(shù)組:",array)
main(array)
執(zhí)行效果:

python冒泡排序1
Python代碼2:
#Python算法--冒泡排序2
import random
def main(array):
num = len(array)
while num > 0:
for j in range(num-1):
if array[j] > array[j+1]:
array[j],array[j+1]=array[j+1],array[j]
num-=1
print("冒泡排序數(shù)組:",array)
if __name__ == '__main__':
array = []
for i in range(15):
array.append(random.randint(1,1000))
print("隨機生成數(shù)組:",array)
main(array)
代碼1和代碼2寫法略有不同,但原理相同,測試執(zhí)行效率相同。