zoukankan      html  css  js  c++  java
  • py-冒泡排序

    import random
    """
    排序:将一组无序记录序列调整为有序记录序列
    列表排序:将无序列表调整为有序列表
        输入:列表
        输出:有序列表
    升序与降序
    内置函数sort()
    """
    #冒泡排序 bubble Sort
    #1、列表每两个相邻的两个数,若前面比后面的大,则交换这个数
    #2、一趟排序完成后,则无序列表减少一个数,有序区增加一个数 ps 循环一次会筛选出最大值放置有序区,剩余无序区再循环
    def bubble_Sort(li):
        for i in range(len(li) - 1):# 第一次循环筛选出最大值
            for j in range(len(li) -i -1):
                if li[j] > li[j+1]:#--升序 
               #if li[j] < li[j+1] -----降序
                    li[j],li[j+1] = li[j+1],li[j]
            print (li)
    #生成100个0-1000的随机数的列表,
    #li = [random.randint(0,100) for i in range(10)]
    """li = [2,5,4,6,3,1,8,9,7]
    print(li)
    print("分割线--------------------")
    bubble_Sort(li)
    print(li)"""
    
    """
    [2, 5, 4, 6, 3, 1, 8, 9, 7] ----------原列表
    分割线--------------------
    [2, 4, 5, 3, 1, 6, 8, 7, 9]
    [2, 4, 3, 1, 5, 6, 7, 8, 9]
    [2, 3, 1, 4, 5, 6, 7, 8, 9]
    [2, 1, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    """
    
    #冒泡优化,当一次循环没有发生任何交换,那么就认为列表已经被排好序了,就结束
    def bubble_Sort2(li):
        for i in range(len(li) - 1):# 第一次循环筛选出最大值
            exchange = False
            for j in range(len(li) -i -1):
                if li[j] > li[j+1]:#--升序 
               #if li[j] < li[j+1] -----降序
                    li[j],li[j+1] = li[j+1],li[j]
                    exchange = True
            print (li)
            if not exchange:
                return
    li2 = [2,5,4,6,3,1,8,9,7]
    print(li2)
    print("分割线--------------------")
    bubble_Sort2(li2)
    print(li2)
  • 相关阅读:
    Log4NET初接触
    wwwww
    关于ASP.NET 的进程帐户对 IIS 元数据库读访问权问题
    CentOS8 .NET Core项目部署
    CentOS7.6中安装Apache及Apache常见操作和配置说明
    .net core 命令行下启动指定端口
    Centos7安装mongodb
    centos8+oracle19开机自启动
    计算机网络常用端口
    Centos7安装mongodb
  • 原文地址:https://www.cnblogs.com/c-jw/p/13806709.html
Copyright © 2011-2022 走看看