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]

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CTF PWN-攻防世界level3之libc动态库寻址

文章目录 前言动态链接Plt与Got简单例子延迟绑定 level3题目简析EXP构造Getshell 总结 前言 本题目 level3 延续了 CTF PWN-攻防世界XCTF新手区WriteUp 一文中的 PWN 题目训练,是 level2 题目的衍生。与 level2 不同的是,存在栈溢出漏洞的 level3&#…

前端技术探秘-Nodejs的CommonJS规范实现原理 | 京东物流技术团队

了解Node.js Node.js是一个基于ChromeV8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。Node中增添了很…

为IP地址申请SSL证书

SSL(Secure Sockets Layer)是一种网络协议,用于在浏览器与服务器之间建立安全、加密的连接。SSL证书是用于证明您的网站身份并启用HTTPS(超文本传输安全协议)的安全文件。这种协议可以确保用户与您的网站之间的所有通信…

合封芯片未来趋势如何?合封优势能否体现?

芯片已经成为现代电子设备的核心组件。为了提高系统的性能、稳定性和功耗效率,一种先进的芯片封装技术——合封芯片应运而生。 合封芯片作为一种先进的芯片封装技术,合封芯片是一种将多个芯片(多样选择)或不同的功能的电子元器件…

nova组件简介

目录 组件关系图 controller节点 openstack-nova-api.service: openstack-nova-conductor.service: openstack-nova-consoleauth.service: openstack-nova-novncproxy.service: openstack-nova-scheduler.service: openstack-nova-conductor.service详解 作用和功能&…

81基于matlab GUI的图像处理

基于matlab GUI的图像处理,功能包括图像颜色处理(灰度图像、二值图像、反色变换、直方图、拉伸变换);像素操作(读取像素、修改像素)、平滑滤波(均值平滑、高斯平滑、中值平滑)、图像…

在VMware Workstation的Centos上实现KVM虚拟机的安装部署:详细安装部署过程(保姆级)

KVM概述 • 以色列qumranet公司研发,后被RedHad公司收购 (1)kvm只支持x86平台 (2)依赖于 HVM,inter VT AMD-v • KVM是(Kernel-based Virtual Machine)的简称,是一个开源的系统虚拟…

SpringCloud Alibaba集成 Gateway(自定义负载均衡器)、Nacos(配置中心、注册中心)、loadbalancer

文章目录 POM依赖环境准备配置配置文件配置类 案例展示 POM依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version><relativePath/></p…

Android开发从0开始(ContentProvider与数据)

内容提供者&#xff1a;ContentProvider 为App存取内部数据提供外部接口&#xff0c;让不同应用共享数据。 ①在配置里AndroidManifest.xml <provider android:name".UserInfoProvider" android:authorities"com.example.chapter07_server.provider.U…

pytest-pytest-html测试报告这样做,学完能涨薪3k

在 pytest 中提供了生成html格式测试报告的插件 pytest-html 安装 安装命令如下&#xff1a; pip install pytest-html使用 我们已经知道执行用例的两种方式&#xff0c;pytest.main()执行和命令行执行&#xff0c;而要使用pytest-html生成报告&#xff0c;只需要在执行时加…

不小心删除了重要文档?试试这10个工具,成功率高达99%!

微软于今年早些时候发布了下一版本的 Windows 操作系统 Windows 11。测试版已经推出&#xff0c;而稳定版本将于今年晚些时候推出。很多Windows爱好者已经安装了Windows版。毫无疑问&#xff0c;测试版让用户体验了Windows的新功能。然而&#xff0c;测试版中也出现了很多未知的…

mybatis注解方式动态标签时有特殊符号,出现元素内容必须由格式正确的字符数据或标记组成

原始代码demo Select("SELECT COUNT(1) FROM AAAA WHERE name #{nage} AND age< 4") public Integer sumXxxxx(String nage, String age);现需求改为nage可以为空&#xff0c;因此使用了动态拼接 Select("<script> SELECT COUNT(1) FROM AAAA WHERE …

Windows | 模仿网易云任务栏实现自定义按钮及缩略图

前言 最近更新网易云发现任务栏按钮中除了播放相关的按钮&#xff0c;多了一个喜欢的按钮&#xff1a; 之前我一直以为网易云任务栏的按钮只是 Windows 为音乐软件专门提供的&#xff0c;于是我又看了一眼系统自带的播放器&#xff0c;发现并没有爱心按钮&#xff1a; 这时我就…

基于5G+物联网+SaaS+AI的农业大数据综合解决方案:PPT全文44页,附下载

关键词&#xff1a;智慧农业大数据&#xff0c;5G智慧农业&#xff0c;物联网智慧农业&#xff0c;SaaS智慧农业&#xff0c;AI智慧农业&#xff0c;智慧农业大数据平台 一、智慧农业大数据建设背景 1、应对全球人口快速增长带来的粮食生产压力&#xff0c;未来的粮食生产力必…

【C++】:多态

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

Python Opencv实践 - 全景图片拼接stitcher

做一个全景图片切片的程序Spliter 由于手里没有切割好的全景图片资源&#xff0c;因此首先写了一个切片的程序spliter。 如果有现成的切割好的待拼接的切片文件&#xff0c;则不需要使用spliter。 对于全景图片的拼接&#xff0c;需要注意一点&#xff0c;各个切片图片之间要有…

什么是机器学习

前言 机器学习&#xff08;Machine Learning, ML&#xff09;是一个总称&#xff0c;用于解决由各位程序员自己基于 if-else 等规则开发算法而导致成本过高的问题&#xff0c;想要通过帮助机器 「发现」 它们 「自己」 解决问题的算法来解决 &#xff0c;而不需要程序员将所有…

影响语音芯片识别率的因素概述

语音芯片识别率是指芯片对人类语音信号的识别能力。在实际应用中&#xff0c;语音芯片识别率的高低直接影响了用户对芯片的体验和满意度。因此&#xff0c;提高语音芯片识别率是当前语音技术领域的重要任务之一。 1.、语音芯片的硬件设计&#xff1a;设计良好的芯片可以更好地…

竹云参编《公共数据授权运营平台技术要求》团体标准正式发布

2023年11月23日&#xff0c;第二届全球数字贸易博览会“数据要素治理与市场化论坛”于杭州成功召开&#xff0c;国家数据局党组书记、局长刘烈宏&#xff0c;浙江省委常委、常务副省长徐文光出席会议并致辞。会上&#xff0c;国家工业信息安全发展研究中心发布并解读了我国首部…

大厂前沿技术导航

百度Geek说 - 知乎 腾讯技术 - 知乎 美团技术团队