# 冒泡排序算法的运作如下:
#
# 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。
# 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
# 针对所有的元素重复以上的步骤,除了最后一个,总共需要重复n-1次。
# 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡算法需要执行n-1次排序,时间复杂度O(n^2),以下图代表一次交换结果:
# 算法
import time
### 冒泡排序算法
#
# 冒泡排序算法的运作如下:
#
# 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。
# 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
# 针对所有的元素重复以上的步骤,除了最后一个。
# 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
mublist=[22,89,78,66,15,29,87,55,43]
def bobble_sort(list):
# 需要执行n-1冒泡次数
for i in range(len(list)-1,0,-1):
#进行交换数据
for j in range(i):
if list[j]>list[j+1]:
list[j],list[j+1]=list[j+1],list[j]
bobble_sort(mublist)
print(mublist)