下面实现用for循环实现冒泡排序(升序)

arr=[5,9,34,3,24,12,23,2]
for i in range(1,len(arr)):
    for j in range(0,len(arr)-i):
        if arr[j]>arr[j+1]:
            arr[j],arr[j+1]=arr[j+1],arr[j]
print arr

以升序为例,冒泡排序的原理就是依次比较相邻的两个数,每次循环后把最大的数交换到最右边

arr=[5,9,34,3,24,12,23,2]
print '未排序前元组:',arr
for i in range(1,len(arr)):
    for j in range(0,len(arr)-i):
        if arr[j]>arr[j+1]:
            arr[j],arr[j+1]=arr[j+1],arr[j]
    print '第'+str(i)+'次排序:',arr
print '升序排序后元组:',arr

运行结果如下


未排序前元组: [5, 9, 34, 3, 24, 12, 23, 2]

第1次排序: [5, 9, 3, 24, 12, 23, 2, 34]

第2次排序: [5, 3, 9, 12, 23, 2, 24, 34]

第3次排序: [3, 5, 9, 12, 2, 23, 24, 34]

第4次排序: [3, 5, 9, 2, 12, 23, 24, 34]

第5次排序: [3, 5, 2, 9, 12, 23, 24, 34]

第6次排序: [3, 2, 5, 9, 12, 23, 24, 34]

第7次排序: [2, 3, 5, 9, 12, 23, 24, 34]

升序排序后元组: [2, 3, 5, 9, 12, 23, 24, 34]