zoukankan      html  css  js  c++  java
  • Python实现冒泡排序

    Python实现冒泡排序

    简单说下,冒泡排序思路就是先从无排序的第一个元素依次与后面的元素做比较,获取比较中大的一方,小的一方放到前一位置,然后进行下次比较,最后找到本轮最大的一个后,将剩下的再进行一轮排序。
    代码实现上可能各有不同,但是思路都是一样。
    贴出我的实现,不是很简洁,debug了一段时间

    lt = [1, 100, 2, 23, 23, 6, 41, 24, 24, 85, 56]
    sorted_list = list()
    
    for i in range(len(lt)): # 冒泡比较遍历次数
        temp_max = None
        for idx, v in enumerate(lt):
            if not temp_max: # 将第一个取值作为临时最大值
                temp_max = v
            if temp_max <= v:
                if idx == 0:
                    continue
                else:
                    lt[idx-1], temp_max = temp_max, v
            else:
                lt[idx-1] = v
        lt.pop() # 取出最后一个元素,剩余的元素开始新一轮排序
        sorted_list.append(temp_max)
    
    print(sorted_list)
    

    运行结果

    [100, 85, 56, 41, 24, 24, 23, 23, 6, 2, 1]

    网络上的实现方法就很简洁,不需要额外的列表,在源列表中交换

    1 #假设变量已经全部定义好
    2 for i in range(len-1):
    3     for j in range(len-1-i):
    4         if a[j] > a[j+1]:
    5             a[j], a[j+1] = a[j+1], a[j]
    

    测试[1]


    1. 测试脚注,看来博客园支持markdown脚注! ↩︎

  • 相关阅读:
    hdu 2001 计算两点的距离
    hdu 2001 计算两点的距离
    hdu 2000 ASCII码排序(c语言)
    hdu 2000 ASCII码排序(c语言)
    1.网页学习-开始学习第一步:
    .net 父窗口线程交给子窗口
    多线程传递多个参数
    not Exists的使用方法
    xml.dom.minidom介绍
    .net之线程控件之间访问
  • 原文地址:https://www.cnblogs.com/ZJiQi/p/8670314.html
Copyright © 2011-2022 走看看