专栏首页网优小兵玩Python【Python 3 冒泡排序】

【Python 3 冒泡排序】

算法讲解

冒泡排序是一种简单直观的排序算法(算法简单,效率低)。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。

算法代码实现

Python 3 代码实现如下,随机生成20个数,保存到列表变量list1中,通过冒泡排序法进行排序,然后输出排序结果:

from random import randrange
import datetime
def Bubble_sort():
    list1 = []
    while len(list1) < 20:  # 范围内随机取20个数值
        list1.append(randrange(0, 1000, 3))

    print('排序前数组:',list1,'\n')
    # 通过两个for循环实现冒泡排序算法,内循环一次实现找出一个最大值
    for i in range(20):
        for j in range(19 - i):
            if list1[j] > list1[j + 1]:  # 遇到较小值前后交换
                list1[j], list1[j + 1] = list1[j + 1], list1[j]

    print('冒泡排序结果:')
    for j in range(1,len(list1)):
        print(list1[j])

start = datetime.datetime.now()
#调用排序函数
Bubble_sort()
end = datetime.datetime.now()
print ('冒泡排序运行所用时间:',end-start)

代码运行结果如下:

本文分享自微信公众号 - 网优小兵玩Python(Python_tool)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Rxjs 响应式编程-第二章:序列的深入研究

    童年的回忆中的益智视频游戏,你必须使用各种技巧在屏幕上引导下降的水流。您可以拆分流,稍后将它们合并,或者使用倾斜的木板来改变它们的方向。你必须要有创造力才能使水...

    frontoldman
  • 【小家Java】Java环境变量(Env)和系统属性(Property)详解---工具文章

    首先说明,这是一篇工具文章,主要记录下我们Java环境变量和系统属性,方便以后的查阅。

    BAT的乌托邦
  • 【小家Spring】聊聊Spring中的数据转换:Converter、ConversionService、TypeConverter、PropertyEditor

    前面聊了HttpMessageConverter,它的名称叫消息转换器,所以它面向的是消息体,和Http强相关,所以该接口所在的包为:org.springfra...

    BAT的乌托邦
  • Spring中PropertySource属性源配置文件的优先级、顺序问题大解析(加载流程)【享学Spring】

    关于Spring的配置文件的优先级、加载顺序一直是个老生常谈的问题。但即使经常被提起,却还是经常被忘记或者弄混。有一种听了很多道理但仍过不好这一生的赶脚有木有。

    BAT的乌托邦
  • 使用commons-configuration2读取properties、yaml、xml配置文件,实现配置文件的热更新【享学Java】

    Apache Commons Configuration是apache commons组件中的又一实用工具。它的官网介绍如下:

    BAT的乌托邦
  • 掌握react,这一篇就够了

    react众所周知的前端3大主流框架之一,由于出色的性能,完善的周边设施风头一时无两。本文就带大家一起掌握react。

    frontoldman
  • 关于Spring属性处理器PropertyResolver以及应用运行环境Environment的深度分析,强大的StringValueResolver使用和解析【享学Spring】

    若直接提PropertyResolver或者StringValueResolver可能很小伙伴会觉得非常的陌生,但是我若提Environment和Embedde...

    BAT的乌托邦
  • 手把手教会使用react开发日历组件

    提前需要准备好react脚手架开发环境,由于react已经不支持在页面内部通过jsx.transform来转义,我们就自己大了个简易的开发环境

    frontoldman
  • 一文告诉你Spring是如何利用"三级缓存"巧妙解决Bean的循环依赖问题的【享学Spring】

    循环依赖:就是N个类循环(嵌套)引用。 通俗的讲就是N个Bean互相引用对方,最终形成闭环。用一副经典的图示可以表示成这样(A、B、C都代表对象,虚线代表引用...

    BAT的乌托邦
  • 【小家Spring】SpEL你感兴趣的实现原理浅析spring-expression~(SpelExpressionParser、EvaluationContext、rootObject)

    Spring Expression Language(简称 SpEL)是一个支持查询和操作运行时对象导航图功能的强大的表达式语言。它的语法类似于传统 EL,但提...

    BAT的乌托邦

扫码关注云+社区

领取腾讯云代金券