Python3基础13——冒泡排序

例1:输出99乘法表
1 for x in range(1, 10):
2     for y in range(1, x+1):
3         print("{} * {} = {}\t".format(y, x, x * y), end="")
4     print()
例2:经典冒泡算法: 利用for循环,完成a=[1,7,4,89,34,2]的冒泡排序。
冒泡排序:小的排前面,大的排后面。 两两相邻对比排序,最终使得数组中的这几个数字按照从小到大的顺序排序。
 1 解法1:正序思维
 2 a = [1, 7, 4, 89, 34, 2]
 3 # 循环的轮数,最多循环n-1轮(可以少但不会多)
 4 for i in range(len(a) - 1):
 5     # 对比的次数,第i轮就有i个数确定
 6     for j in range(len(a) - 1 - i):
 7         if a[j] > a[j + 1]:
 8             a[j], a[j + 1] = a[j + 1], a[j]
 9         else:
10             pass
11 print(a)
12 <<<  [1, 2, 4, 7, 34, 89]
1 解法2:逆向思维,递减
2 a = [1, 7, 4, 89, 34, 2]
3 for row in range(len(a)-1,0,-1):
4     for col in range(row):
5         if a[col]>a[col+1]:
6             a[col],a[col+1] = a[col+1],a[col]
7 print(a)

 

posted @ 2018-10-17 16:03  Monica711  阅读(374)  评论(0)    收藏  举报