python-冒泡排序

冒泡排序 (稳定) O(n^2)
(稳定:表示相等的数,相对位置会不会改变)
冒泡排序(Bubble Sort)是一种简单的排序算法,它通过多次遍历待排序的元素,比较相邻两个元素的大小并交换它们,从而将最大(或最小)的元素逐步移到最后。以下是 Python 中冒泡排序的实现:
在这里插入图片描述

代码示例:

list=[1,4,3,9,8]
for i in range(0,len(list)-1):for j in range(0,len(list)-1-i):if list[j]>list[j+1]:list[j],list[j+1]=list[j+1],list[j]
print(list)

结果显示:
在这里插入图片描述

我的理解:
冒泡排序的思想相对简单,可以通过以下方式进行简单理解:

  1. 比较相邻元素: 从数组的第一个元素开始,依次比较相邻的两个元素。

  2. 交换元素位置: 如果前面的元素比后面的元素大(升序排序),则交换它们的位置,将较大的元素移到后面。

  3. 遍历整个数组: 继续进行上述比较和交换的操作,直到遍历整个数组。

  4. 一轮完成: 这样一轮的操作之后,数组中最大的元素已经被移到了最后。

  5. 重复操作: 重复上述步骤,每一轮都将数组中当前未排序的最大元素移到了正确的位置。

  6. 排序完成: 当数组中不再存在需要交换的元素时,排序完成。

示例理解:

考虑数组 [64, 34, 25, 12, 22, 11, 90]

  • 第一轮:

    • 比较并交换 64 和 34,得到 [34, 64, 25, 12, 22, 11, 90]
    • 比较并交换 64 和 25,得到 [34, 25, 64, 12, 22, 11, 90]
    • 比较并交换 11 和 90,得到 [34, 25, 12, 22, 11, 64, 90]
  • 第二轮:

    • 比较并交换 11 和 64,得到 [34, 25, 12, 22, 11, 64, 90]
  • 第三轮:

    • 比较并交换 11 和 34,得到 [25, 12, 22, 11, 34, 64, 90]
  • 以此类推,最终得到有序数组 [11, 12, 22, 25, 34, 64, 90]

虽然冒泡排序的性能相对较低,但通过上述简单的比较和交换操作,我们可以将较大的元素逐步“浮”到数组的末尾,从而实现排序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/213632.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux安装zsh、oh-my-zsh及常用插件

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com,github地址为https://github.com/xjintong。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。 一、安装zsh 这个不用多说了&#xff0…

做外贸的你崩溃过吗

某日,孔先生问我, 前几天的那个单子怎么样了?看你一会找工厂拍照片,一会找办公室录制视频,半夜还在拿着手机和客户打电话,现在怎么也不提这个进展了,我回答道:黄了。 此时孔先生一股…

静态链表的结构设计与主要操作功能的实现(初始化,头插,尾插,判空,删除,输出,清空,销毁)

目录 一.静态链表的结构设计 二.静态链表的结构设计示意图 三.静态链表的实现 四.静态链表的总结 一.静态链表的结构设计 typedef struct SNode {int data;//数据int next;//后继指针(下标) }SNode,SLinkList[MAXSIZE]; 二.静态链表的结构设计示意图 0:有效数据链的头节点;…

【C++】:多态

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关多态的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结…

部署项目时常用的 Linux 命令

目录 1 前言2 SSH登录命令3 SCP传输命令4 CP拷贝命令5 MV移动命令6 TAR解压命令7 DU查看文件夹/文件大小8 TAIL查看日志9 NOHUP后台运行10 结语 1 前言 在应用部署过程中,Linux命令是必不可少的工具。它们能够帮助我们管理文件、连接服务器、拷贝文件、查看日志以及…

TCP 重传、滑动窗口、流量控制、拥塞控制的剖析

TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。 那么,TCP 是…

递归回溯剪枝-子集

LCR 079. 子集 - 力扣&#xff08;LeetCode&#xff09; 方法一 1. 决策树&#xff1a;对于决策树&#xff0c;思考的角度不同&#xff0c;画出的决策树也会不同&#xff0c;这道题可以从两个角度来画决策树。 2. 考虑全局变量的使用&#xff1a; 使用全局变量 List<List&…

2016年8月18日 Go生态洞察:Go 1.7版本二进制文件缩小

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

百分点科技入选《2023年央国企数字化升级研究报告》

近日&#xff0c;艾瑞咨询发布了《2023年央国企数字化升级研究报告》&#xff0c;报告总结了央国企数字化升级的方向和特点&#xff0c;并重点研究了基础平台及关键技术工具、通用及综合型应用、重要配套建设等方面。报告指出&#xff0c;数据治理是央国企数字化升级过程中的重…

某上市证券公司:管控文件交换行为 保护核心数据资产

客户简介 某上市证券公司成立于2001年&#xff0c;经营范围包括&#xff1a;证券经纪、证券投资咨询、证券承销与保荐、证券自营等。经过多年发展&#xff0c;在北京、上海、深圳、重庆、杭州、厦门等国内主要中心城市及甘肃省内各地市设立了15家分公司和80余家证券营业部。20…

实现外卖配送的智能化:外卖配送可视化技术解析

随着互联网技术的不断发展&#xff0c;外卖配送行业也迎来了快速发展的时代。而随之而来的是越来越多的用户对于外卖配送的质量和效率提出了更高的要求。如何让外卖配送更加可视化&#xff0c;成为了外卖配送行业亟需解决的问题。 外卖配送可视化是指通过技术手段&#xff0c;将…

2023亚太杯数学建模A题思路分析 - 采果机器人的图像识别技术

1 赛题 问题A 采果机器人的图像识别技术 中国是世界上最大的苹果生产国&#xff0c;年产量约为3500万吨。与此同时&#xff0c;中国也是世 界上最大的苹果出口国&#xff0c;全球每两个苹果中就有一个&#xff0c;全球超过六分之一的苹果出口 自中国。中国提出了一带一路倡议…