冒泡排序:是将一串无需的数字,排列成有序的。通过相邻的两个数作比较,大的往后移,经过反复的比较,最后得出一串有序的数列。
那么用代码该如何实现?
其实这个问题的思路就是判断每相邻的两个数,进行大小比较,然后交换位置,判断大小容易,麻烦的是交换位置。python的“解构”就能很好的解决这个问题。
先看一段小代码
a = 10
b = 20
# 如何交换a,b的值,让a=20,b=10
a,b = b,a
print(a,b)
# 20 10
通过上面解构的方式就可以将两个值互换。
如果定义第一个数为的索引count,那么第二个数的索引就是count + 1。
a = [1,2,3,4,5,66,552,3,655,4,2,11,565,6,445,6,32,5,4,56,65] #12个数 索引0-11 count_1 = 0 while count_1 < len(a): #里面的循环的每循环完一次,最大的那个说就移动到最右边,这个循环是有几个数就循环几次。 count = 0 while count < len(a) - 1: #定义while循环的次数,本次循环是将列表中的最大值移动到最右边 if a[count + 1] > a[count]: #比较count和count+1的大小 a[count],a[count + 1] = a[count + 1],a[count] #如果count>count+1,那么通过解构的方式互换两个值的位置 else: pass # 如果count不大于count+1,那就直接pass count += 1 count_1 += 1 print(a)