python用for循环实现冒泡排序

发布时间:2019-08-27 08:03:41编辑:auto阅读(2602)

    下面实现用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]



关键字