目录
冒泡排序的代码
def bubbling(list):
for i in range(len(list)-1):
for l in range(len(list)-1-i):
if list[l] > list[l+1]:
list[l], list[l + 1] = list[l + 1], list[l]
return list
if __name__ == '__main__':
list = [3,1,44,5,2,30,0]
print(bubbling(list))
冒泡排序的过程
两个相邻的数字进行比较,较大数字放在后面,排完后,最大的数字会被排到最后
第2轮比较,只比较其余的数字,仍然将最大的排到最后,所用次数减少一次
四个数字共需要三轮排序
编写代码
首先编写第一轮排序,4个数字需要排序3次,若n个数字需要排序n-1次
list = [4,3,2,1]
for l in range(len(list)-1): # len(list)为列表的长度4,需要排序(4-1)次
if list[l] > list[l+1]: # 比较相邻两个数字,若前者大于后者
list[l], list[l + 1] = list[l + 1], list[l] # 则两者调换位置
第一轮排序完成后,还要继续进行多轮排序,进入多轮排序的循环,在外侧嵌套多轮排序的循环,4个数字需要3轮,若n个数字需要排序n-1轮
且每轮排序的次数和轮数有以下关系
所以得出代码
list = [4,3,2,1]
n = len(list) # len(list)为列表的长度4
for i in range(n-1) # 该循环为轮数循环,n个数字需要排序n-1轮
for l in range(n-i-1): # 该循环为每轮的次数循环,每轮的次数为n-轮数-1
if list[l] > list[l+1]: # 比较相邻两个数字,若前者大于后者
list[l], list[l + 1] = list[l + 1], list[l] # 则两者调换位置