python冒泡排序原理_python冒泡排序详解

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

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

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

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

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

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

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

例子:

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/211618.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午10:00
下一篇 2026年3月18日 下午10:01


相关推荐

  • SECS/GEM300通讯平台设计

    SECS/GEM300通讯平台设计SECS GEMM 标准为标准工厂自动化提供了框架 从远程主机监控和控制设备 它是一种国际公认和采用的标准 允许来自不同供应商的设备在制造工厂中自动化 GEM 标准定义了一组基本的 GEM 要求和一组额外的 GEM 功能 GEM 要求每个 GEM 界面中都包含特定元素 但是 它鼓励每个接口都具有独特的机器特定元素 SECSI 意义和初衷 RevisionHist Thisisthefir

    2026年3月17日
    1
  • 网站留言板的功能_网页留言板源码

    网站留言板的功能_网页留言板源码本文描述如何在网页上实现一个简单的留言板功能,仅支持文字留言。开发环境:dreamweaverCChtml+jscirpt+php前置条件:1、一个简单的网站已经搭建完毕,支持用户登录网站。2、用户已登录网站。实现步骤:一、新建留言板网页1、新建网页:whiteboard.html留言板(js-div-whiteboard…

    2025年7月22日
    6
  • c语言基础编程100道_创建窗体应用程序

    c语言基础编程100道_创建窗体应用程序结果图(可以按照这样做控件,也可以优化,另减法乘法等类似可以自行添加功能优化界面)代码实现using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Te…

    2022年8月18日
    13
  • js判断字符串是否为空格_替换字符串c++

    js判断字符串是否为空格_替换字符串c++//判断字符串是否为空functionisNull(variable){if(variable!==null||variable!==undefined||variable!==”){ if(variable.replace(/(^s*)|(s*$)/g,””).length>0){returnfalse} }returntrue;

    2025年8月2日
    5
  • SVN安装教程详解

    SVN安装教程详解SVN 安装教程软件包请移步到百度云网盘 链接 https pan baidu com s 1qHQSk kl fcebnFFJqQP1 提取码 ix1q1 1 TortoiseSVN 安装先安装 TortoiseSVN 然后安装汉化包 安装成功之后 所有的操作都是 右键 安装成功的标记 1 1 创建仓库我们

    2026年3月26日
    5
  • painless语法入门[通俗易懂]

    painless语法painless基础结构”script”:{“lang”:”…”,”source”|”id”:”…”,”params”:{…}}lang:定义脚本使用的语言,默认painlesssource,id:脚本的主体,source后面跟着内联的脚本代码,id后面跟着脚本的id,具体代码存在于脚本id对应的代码中params:定义一些变量的值,使用params可以减少脚本的编译次数.因为如果

    2022年4月18日
    454

发表回复

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

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