Python 冒泡排序_python

Python 冒泡排序_python要学习冒泡排序必须知道它的原理:冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。例子:1,2,3,4,5,6就拿1到6来举例子吧!这里面有n个数字,你要对其进…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

要学习冒泡排序必须知道它的原理:

冒泡排序算法的原理如下:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

例子:

1,2,3,4,5,6

就拿1到6来举例子吧!这里面有n个数字,你要对其进行从大到小的排序的话,你就要拿相邻的两个数进行比较,如果第一个数比第二个大就交换他们的位置:第二个就和第三个比较,一直这样下去,直到最小的就会在最后面了,然后继续从第一和第二个进行比较,如此下去。

第1轮: 1,2,3,4,5,6 2,1,3,4,5,6 2,3,1,4,5,6 2,3,4,1,5,6 2,3,4,5,1,6 2,3,4,5,6,1

第2轮:2,3,4,5,6,1 3,2,4,5,6,1 3,4,2,5,6,1 3,4,5,2,6,1 3,4,5,6,2,1

第3轮:3,4,5,6,2,1 4,3,5,6,2,1 4,5,3,6,2,1 4,5,6,3,2,1

第4轮:4,5,6,3,2,1 5,4,6,3,2,1 5,6,4,3,2,1

第5轮:5,6,4,3,2,1 6,5,4,3,2,1

由上面可以清楚了解到一个进行了五轮排序,后一轮都要比前一轮少一次比较,第一轮进行n-1次比较

这样就可以编写代码了

a_list = [1, 2, 3, 4, 5, 6]

for t in range(len(a_list)-1):

for i in range(0, len(a_list)-1):

tmp = a_list[i]

if a_list[i] < a_list[i+1]:

a_list[i] = a_list[i+1]

a_list[i+1] =tmp

print(a_list)

这样就是冒泡排序了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181512.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月16日 上午6:36
下一篇 2022年10月16日 上午6:36


相关推荐

  • c语言枚举类型enum例子_枚举是什么意思

    c语言枚举类型enum例子_枚举是什么意思在实际的编程应用中,有的变量只有几种可能的取值,譬如说一个星期的七种可能,性别的两种可能等等。C语言为这种类型的变量的定义提供了enum关键字。要使用枚举类型的变量,首先需要先定义一个枚举类型名,然后再声明该变量是枚举类型的例如:enumweekday{\\该语句定义了一个`枚举类型`MONDAY,TUSEDAY,WEDNESDAY,…

    2025年8月19日
    4
  • Linux零拷贝_Linux开发教程

    Linux零拷贝_Linux开发教程引言传统的Linux操作系统的标准I/O接口是基于数据拷贝操作的,即I/O操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘I/O的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘I/O操作。但是数据传输过程中的数据拷贝操作却导致了极大的CPU开销,限

    2025年11月26日
    4
  • 微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)「建议收藏」

    先来个效果图^_^微信支付功能,个人公众号是没有办法进行开发支付功能的,需要是使用非个人公众号进行注册(如:营业执照等,可以去淘宝购买一个也行大概500左右)公众平台的配置可以参考文档,这里主要是微信官网注册非个体公众号的否需代码操作。(也就是和我们码农相关的操作了)耐心看下面操作,基本上就是复制下面的代码(整个操作也就一会,基础再差也就30分钟搞定支付)^_^1.创建微信小程序2.在微信小程中序创建云函数1).根目录下创建一…

    2022年4月18日
    324
  • openid什么意思_openId

    openid什么意思_openId在使用IdentityServer作IdentityProvider的时候,我们在NetCore的ConfigureServices((IServiceCollectionservices))方

    2022年8月17日
    10
  • RFID-RC522/STM32F103RB/KEIL5 简单实现读取卡片ID[通俗易懂]

    RFID-RC522/STM32F103RB/KEIL5 简单实现读取卡片ID[通俗易懂]在这篇文章【https://blog.csdn.net/qq_28877125/article/details/80437095】的基础上修改完成!核心源码main.c#include&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;delay.h&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;#include&amp;amp;amp;amp;amp;amp;amp;am

    2025年11月22日
    5
  • Java开发手册之单元测试

    Java开发手册之单元测试Java开发手册之单元测试

    2022年4月22日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号