这样就不会忘记冒泡排序了

冒泡排序是最基础的编程。

但久了很容易忘记角标。

a = [5, 3, 2, 6, 1, 4]

n = len(a)
for i in range(n - 1):
    for j in range(n - 1 - i):
        if a[j] > a[j + 1]:
            a[j], a[j + 1] = a[j + 1], a[j]

也就是range(n - 1)和range(n - 1 - i)。

可以这样来理解。

冒泡排序需要两两比较,外层循环的i,从0开始,到倒数第二个结束,这里n - 1,防止数据越界。

内层循环的j,从0开始,到哪里结束呢?

外层i每迭代一次,就冒了一个元素到最后面去,已经冒好的元素不需要比较了。

这里n - 1 - i,就是减去了已经冒好的元素。

理解之后,就不容易忘记了。

猜你喜欢

转载自www.cnblogs.com/df888/p/12349053.html
今日推荐