zoukankan      html  css  js  c++  java
  • python- 冒泡算法

    #### 冒泡算法 ####
    # a 和 b 的值互换
    a = 111
    b = 222
    test = a # test = 111
    a = b # a = 222
    b = test # b = 111

    li = [44, 12, 22, 33, 456, 1, 10]
    # print(len(li)) # 7
    # for j in range(len(li)):
    # print(j)
    # 0 1 2 3 4 5 6 7 # range默认是从0 开始的。
    for i in range(len(li) - 1): # 此处的-1 是因为,len(li) = 7 ,而做比较的时候i = 7 是最大的,没有i + 1
    if li[i] > li[i + 1]:
    temp = li[i]
    li[i] = li[i + 1]
    li[i + 1] = temp
    print(li)
    # [12, 22, 33, 44, 1, 10, 456] 默认将最大的一个数排序到了最后。
    # ### 排序列表中第二个最大的值 ###
    for i in range(len(li) - 2): # 此处的-2 是因为,最后一个数已经是最大的了,要排除掉,排除掉以后就是第二大的了。
    if li[i] > li[i + 1]:
    temp = li[i]
    li[i] = li[i + 1]
    li[i + 1] = temp
    print(li)
    # [12, 22, 33, 1, 10, 44, 456]
    # ### 排序列表中第三个最大的值 ###
    for i in range(len(li) - 3): # 此处的-3 是因为,最后1和2的数已经是最大的了,要排除掉,排除掉以后就是第三大的了。
    if li[i] > li[i + 1]:
    temp = li[i]
    li[i] = li[i + 1]
    li[i + 1] = temp
    print(li)
    # [12, 22, 33, 1, 10, 44, 456]

    # 通过以上的测试,我们发现一个道理,只有最后-1 ,-2, -3 在变,其他都没有变换,可以用一个变量来替换。
    # for i in range(len(li) - 1):
    # for i in range(len(li) - 2):
    # for i in range(len(li) - 3):
    for jj in range(1, len(li)): # 此处的1,是从1 开始,而不是从0 开始,因为-0 还是那个,没有意义。
    for i in range(len(li) - jj):
    if li[i] > li[i + 1]:
    temp = li[i]
    li[i] = li[i + 1]
    li[i + 1] = temp
    print(li)
    # [1, 10, 12, 22, 33, 44, 456]
    我的目标是每天厉害一点点
  • 相关阅读:
    使用 libevent 和 libev 提高网络应用性能
    An existing connection was forcibly closed by the remote host
    各种浏览器的兼容css
    vs输出窗口,显示build的时间
    sass
    网站设置404错误页
    List of content management systems
    css footer not displaying at the bottom of the page
    强制刷新css
    sp_executesql invalid object name
  • 原文地址:https://www.cnblogs.com/sidaofeng/p/10167476.html
Copyright © 2011-2022 走看看