冒泡排序基本思想
对于列表a依次比较两个相邻元素的大小,若a[j]大于a[j+1]则进行交换,第一趟把最大的数换到最后,依次类推生成有序的列表。
冒泡排序默认升序排列,如果需要降序则把内层循环中的>号改成<号
a = [10,5,2,4,1,0] c = 0 print(" %s" % a) for i in range(len(a)-1): print("Outer Loop:%d" % i) for j in range(len(a)-1-i): print(" Inner Loop:%d" % j) if a[j] > a[j+1]: a[j+1], a[j] = a[j], a[j+1] print(" %s" % a) c += 1 print(c)
输出结果:
[10, 5, 2, 4, 1, 0] Outer Loop:0 Inner Loop:0 [5, 10, 2, 4, 1, 0] Inner Loop:1 [5, 2, 10, 4, 1, 0] Inner Loop:2 [5, 2, 4, 10, 1, 0] Inner Loop:3 [5, 2, 4, 1, 10, 0] Inner Loop:4 [5, 2, 4, 1, 0, 10] Outer Loop:1 Inner Loop:0 [2, 5, 4, 1, 0, 10] Inner Loop:1 [2, 4, 5, 1, 0, 10] Inner Loop:2 [2, 4, 1, 5, 0, 10] Inner Loop:3 [2, 4, 1, 0, 5, 10] Outer Loop:2 Inner Loop:0 [2, 4, 1, 0, 5, 10] Inner Loop:1 [2, 1, 4, 0, 5, 10] Inner Loop:2 [2, 1, 0, 4, 5, 10] Outer Loop:3 Inner Loop:0 [1, 2, 0, 4, 5, 10] Inner Loop:1 [1, 0, 2, 4, 5, 10] Outer Loop:4 Inner Loop:0 [0, 1, 2, 4, 5, 10] 15