• python 冒泡排序的总结


    冒泡排序:

    思路:

    3 5 1 6 2

    第一次:找到这些书中最大的一个,并把它放到最后

    3、5找到大的数放到第二个位置1、5

    5、1找到大的数放到第三个位置1、5、1

    5、6找到大的数放到第四个位置

    2、6找到大的数放到第五个位置

    第五个位置就是最大的

    #encoding=utf-8

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

    for i in range(len(a)-1):

        if a[i] > a[i+1]:

            a[i],a[i+1] = a[i+1],a[i]

    print ("a:",a)

    D: estpytyon3>py -3 a.py

    a: [3, 1, 5, 2, 6]

    找到最大值了,现在开始找次大值

    分析过程:

    3 5 1 6 2

    第一次:找到这些数中最大的一个,并把它放最后。

    3、5找到大的数放到第二个位置

    5、1找到大的数放到第三个位置

    5、6找到大的数放到第四个位置

    2、6找到大的数放到第五个位置

    第五个位置就是最大的。

    a,b = b,a

    temp=a

    a=b

    b=temp

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

    for i in range(len(a)-1):

        if a[i]>a[i+1]:

            a[i],a[i+1] = a[i+1],a[i]

    print(a[-1])

    找最大值了,现在次大值,次大值放在倒数第二的位置。

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

    for i in range(len(a)-1-1):

        if a[i]>a[i+1]:

            a[i],a[i+1] = a[i+1],a[i]

    print(a[-1])

    找第三个最大的数,放到倒数第三个。

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

    for i in range(len(a)-1-1-1):

        if a[i]>a[i+1]:

            a[i],a[i+1] = a[i+1],a[i]

    print(a[-3])

    找到第四大的书,放到倒数第四个。

    for i in range(len(a)-1-1-1-1):

        if a[i]>a[i+1]:

            a[i],a[i+1] = a[i+1],a[i]

    print(a[-4])

    剩下的最后一个,就是最小的数,放到第一个

    代码:

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

    print(a)

    for i in range(len(a)-1):#0,1,2,3

        for j in range(len(a)-1-i):

            if a[j] > a[j+1]:

                a[j],a[j+1] = a[j+1],a[j]

    print ("a:",a)

    结果:

    D: estpytyon3>py -3 a.py

    [3, 5, 1, 2, 6]

    a: [1, 2, 3, 5, 6]

    怎么理解:

    第一次内层循环的结果就是找到最大的值

    第二次内层循环的结果就是找到次大的值,本次将忽略最后一个元素的比较

    第二次内层循环的结果就是找到第三大的值,本次讲忽略倒数第二个元素和最后一个元素的比较

    .......

  • 相关阅读:
    jdk .tar.gz 包安装 inAction
    Consistent Hashing原理与实现
    开放GitHub的理由
    dll signing issue
    Regular expression cheat sheet
    DOMElement之Offset
    扫码支付测试点
    SQL注入是什么?如何防止?
    什么是接口测试?为什么要做接口测试?如何开展接口测试?
    软件测试的常识
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/9529028.html
Copyright © 2020-2023  润新知