冒泡排序(Python)

冒泡排序:依次比较相邻的两个数,将大数放在后面,小数放在前面。

n个数排序共需进行n-1趟,第一趟排序结束时,最后一个元素为所有元素中的最大值。

冒泡排序的原理

1)比较相邻元素:如果第一个比第二个大(或小,根据排序顺序),就交换它们两个。

2)对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大数(或最小数)。

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

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

冒泡排序的python代码实现

def bubble_sort(arr):  n = len(arr)  # 遍历所有数组元素  for i in range(n):  # 标志位,用于检测该轮是否有元素交换  swapped = False  # 由于每轮循环会将最大的元素移动到数组的末尾,  # 所以内层循环可以少比较一次  for j in range(0, n-i-1):  # 如果前面的元素比后面的元素大,则交换它们  if arr[j] > arr[j+1]:  arr[j], arr[j+1] = arr[j+1], arr[j]  swapped = True  # 如果在一轮循环中没有发生交换,说明数组已经有序,可以提前退出  if not swapped:  break  return arr  

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

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

相关文章

Python异步编程:使用`asyncio`和`aiofiles`进行高效的文件批量写入

Python异步编程:使用asyncio和aiofiles进行高效的文件批量写入 1. 异步编程基础1.1 asyncio和await1.2 aiofiles 2. 异步文件批量写入示例2.1 代码结构2.2 代码实现2.3 代码解释2.3.1 BatchWriter类2.3.2 main函数 3. 其他示例代码3.1 简单的异步文件写入3.2 异步文…

婚纱相册必须去摄影店吗?其实自己会拍照就能实现,性价比更高

一直以来,婚纱照都是新人们婚礼筹备中不可或缺的部分。然而,高昂的摄影店价格让不少新人望而却步。其实,只要掌握一些拍照技巧,自己在家就能制作出独一无二的婚纱相册,不仅性价比超高,还能留下更多珍贵的回…

Android 中的串口开发

一:背景 本文着重讲安卓下的串口。 由于开源的Android在各种智能设备上的使用越来越多,如车载系统等。在我们的认识中,Android OS的物理接口一般只有usb host接口和耳机接口,但其实安卓支持各种各样的工业接口,如HDM…

条码检测系统——基于MATLAB的一维条码识别

摘 要:条码技术是如今应用最广泛的识别和输入技术之一,由于其包含的信息量大,识别错误率低而在各个方面得到很大的重视。它发展迅速并被广泛应用于于工业、商业、图书出版、医疗卫生等各行各业。由我国目前发展现状来看,条码的正…

人工智能:重塑未来生活与工作的科技力量

方向一:介绍人工智能技术的发展历程和现状,指出它的应用领域和前景 一、人工智能技术的发展历程 人工智能(Artificial Intelligence, AI)作为一门学科,其起源可以追溯到20世纪50年代。最初,AI的研究主要集…

Mytatis-plus使用sl4j日志打印SQL

以下是关于使用 Spring Boot 起始器替换 slf4j-api 和 logback 依赖的详细步骤和注意事项&#xff0c;包括 MyBatis-Plus 的默认日志级别信息。 1、依赖项配置 在 pom.xml 中添加以下依赖项&#xff1a; <dependency><groupId>org.springframework.boot</gro…

字符串使用方法:

字符串: -- 拼接字符串 SELECT CONCAT(糯米,啊啊啊撒,删掉); -- 字符长度 SELECT LENGTH(asssssssggg); -- 转大写 SELECT UPPER(asdf); -- 转小写 SELECT LOWER(ASDFG); -- 去除左边空格 SELECT LTRIM( aaaasdrf ); -- 去除右边空格 SELECT RTRIM( aaaasdff ); -- 去除两端…

攻坚金融关键业务系统,OceanBase亮相2024金融科技大会

10月15-16日&#xff0c;第六届中新数字金融应用博览会与2024金融科技大会&#xff08;简称“金博会”&#xff09;在苏州工业园区联合举办。此次大会融合了国家级重要金融科技资源——“中国金融科技大会”&#xff0c;围绕“赋能金融高质量发展&#xff0c;金融科技创新前行”…

【C++指南】运算符重载详解

引言 C 提供了运算符重载这一特性&#xff0c;允许程序员为自定义类型&#xff08;如类和结构体&#xff09;定义运算符的行为。 通过运算符重载&#xff0c;可以使自定义类型对象像内置类型一样使用运算符&#xff0c;从而提高代码的可读性和易用性。 本文将详细介绍 C 中运算…

【状态机DP】力扣2786. 访问数组中的位置使分数最大

给你一个下标从 0 开始的整数数组 nums 和一个正整数 x 。 你 一开始 在数组的位置 0 处&#xff0c;你可以按照下述规则访问数组中的其他位置&#xff1a; 如果你当前在位置 i &#xff0c;那么你可以移动到满足 i < j 的 任意 位置 j 。 对于你访问的位置 i &#xff0c…

若依微服务15 - RuoYi-Vue3 实现前端独立运行

正文开始&#xff1a; RuoYi-Vue3 使用 Vue3 Element Plus Vite 技术栈。 GitHub 开源地址&#xff1a;https://github.com/yangzongzhuan/RuoYi-Vue3 本文介绍使用若依提供的在线后端接口&#xff0c;仅启动前端项目并进行界面开发&#xff0c;而无需启动后端服务。 一、克隆…

AI视听新体验!浙大阿里提出视频到音乐生成模型MuVi:可解决语义对齐和节奏同步问题

MuVi旨在解决视频到音乐生成(V2M)中的语义对齐和节奏同步问题。 MuVi通过专门设计的视觉适配器分析视频内容,以提取上下文 和时间相关的特征,这些特征用于生成与视频的情感、主题及其节奏和节拍相匹配的音乐。MuVi在音频质量和时间同步方面表现优于现有基线方法,并展示了其在风…

Clickhouse集群_Zookeeper配置的dataDir目录磁盘占有率接近100%时,该dataDir目录是否可以清理及如何清理的脚本

官方文档https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#OngoingDataDirectoryCleanup 监控报警发现clickhouse集群环境的数据库节点磁盘报警&#xff0c;检查下来发现/chdata/zookeeper/data/version-2/目录特别大&#xff0c;里面包含了log.*文件和snapshot.…

【前端】--- ES6上篇(带你深入了解ES6语法)

前言&#xff1a;ECMAScript是 JavaScript 的标准化版本&#xff0c;由 ECMA 国际组织制定。ECMAScript 定义了 JavaScript 的语法、类型、语句、关键字、保留字等。 ES6 是 ECMAScript 的第六个版本&#xff0c;于 2015 年发布&#xff0c;引入了许多重要的新特性&#xff0c;…

实现vuex源码,手写

实现vuex源码&#xff0c;手写 Vuex 是专门为 Vue.js 应用程序开发的状态管理模式 库&#xff0c;它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 第一步&#xff1a;定义初始化Store类 创建文件夹store/vuex.js 1…

C++ 20 Concept

concept主要用来定义模板参数的约束&#xff0c;最明显的作用就是在模板参数不满足类型的约束时编译器不再给出几千行奇奇怪怪的错误。当然还有其它的作用&#xff0c;比如说concepts可以用来实现函数的重载、新的concepts可以基于已有的concepts定义从而进行扩展等等下面以实现…

k8s 部署 nexus3 详解

创建命名空间 nexus3-namespace.yaml apiVersion: v1 kind: Namespace metadata:name: nexus-ns创建pv&pvc nexus3-pv-pvc.yaml apiVersion: v1 kind: PersistentVolume metadata:name: nfs-pvnamespace: nexus-ns spec:capacity:storage: 3GiaccessModes:- ReadWriteM…

Redis的6.0以上为啥又支持多线程

Redis 在 6.0 版本之前一直采用单线程架构&#xff0c;这是因为 Redis 主要是内存操作&#xff0c;单线程模型足以应对大部分高性能场景。而单线程模型的优势在于避免了多线程带来的上下文切换和锁的开销&#xff0c;使得 Redis 保持极高的性能和简单性。 然而&#xff0c;随着…

C++:模板的特化与分离编译

之前我们在介绍模板的时候仅仅是简单的介绍了模板的用法&#xff0c;本篇文章我们来详细的介绍下模板中比较重要的几个点。 一&#xff0c;非类型模板参数 我们之前的c中&#xff0c;会将经常使用的而又确保在我们程序的运行过程中值不会改变的值进行#define&#xff1a; #d…

初入编程之路,启航代码海

#1024程序员节|征文# 前言 今天又是1024程序员节了&#xff0c;第一次听说这个节日是在我在23年刚刚上大一的时候听学长他们说的&#xff0c;如今已经是24年了&#xff0c;虽然只学习了一年的编程但我已经了解到了这条路上的不易。希望能够在这条路上面一路坚持下去&#xff0…