Python3基础13——冒泡排序

例1:输出99乘法表
for x in range(1, 10):
    for y in range(1, x+1):
        print("{} * {} = {}\t".format(y, x, x * y), end="")
    print()
例2:经典冒泡算法: 利用for循环,完成a=[1,7,4,89,34,2]的冒泡排序。
冒泡排序:小的排前面,大的排后面。 排序,最终使得数组中的这几个数字按照从小到大的顺序排序。
解法1:正序思维
a = [1, 7, 4, 89, 34, 2]
# 循环的轮数
for i in range(len(a) - 1):
    # 对比的次数,第i轮就有i个数确定
    for j in range(len(a) - 1 - i):
        if a[j] > a[j + 1]:
            a[j], a[j + 1] = a[j + 1], a[j]
        else:
            pass
print(a)

<<<  [1, 2, 4, 7, 34, 89]
解法2:逆向思维,递减
a = [1, 7, 4, 89, 34, 2]

for row in range(len(a)-1,0,-1):
    for col in range(row):
        if a[col]>a[col+1]:
            a[col],a[col+1] = a[col+1],a[col]
print(a)

 

你可能感兴趣的:(Python3)