首页 > 编程语言 >Python 冒泡排序

Python 冒泡排序

时间:2024-06-22 13:29:02浏览次数:27  
标签:数列 swapped Python 交换 冒泡排序 lst 排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

以下是一个用Python实现的冒泡排序算法的例子:


pythondef bubble_sort(lst):
n = len(lst)
for i in range(n):
# 创建一个标志,用于检查这一轮是否有交换
swapped = False
for j in range(0, n - i - 1):
# 遍历到 n-i-1 是因为每次内层循环后,最大的元素就会像冒泡一样“浮”到数列的末尾
if lst[j] > lst[j + 1]:
# 如果当前元素大于下一个元素,则交换它们
lst[j], lst[j + 1] = lst[j + 1], lst[j]
# 标记有交换发生
swapped = True
# 如果没有交换发生,说明数列已经排序完成,可以提前退出循环
if not swapped:
break
return lst

# 示例
numbers = [64, 34, 25, 12, 22, 11, 90]
print("原始数列:", numbers)
bubble_sort(numbers)
print("排序后的数列:", numbers)

在这个例子中,bubble_sort 函数接受一个列表 lst 作为参数,并使用两个嵌套的for循环来实现冒泡排序。外层循环控制排序的轮数,内层循环用于比较相邻元素并进行可能的交换。同时,我们添加了一个 swapped 标志来检查每一轮是否有交换发生,如果没有交换发生,说明数列已经排序完成,可以提前退出循环,提高算法的效率。

标签:数列,swapped,Python,交换,冒泡排序,lst,排序
From: https://blog.csdn.net/weixin_46807151/article/details/139881329

相关文章

  • 让你的 Python 代码更快的小技巧
    我们经常听到“Python太慢了”,“Python性能不行”这样的观点。但是,只要掌握一些编程技巧,就能大幅提升Python的运行速度。今天就让我们一起来看下让Python性能更高的9个小技巧python学习资料分享(无偿):字符串拼接的技巧如果有大量字符串等待处理,字符串连接将成为......
  • Python高效内存访问,memoryview这个神器你值得拥有!
    目录1、初识memoryview......
  • 机器学习python实践——由特征选择引发的关于卡方检验的一些个人思考
    最近在用python进行机器学习实践,在做到特征选择这一部分时,对于SelectPercentile和SelectKBest方法有些不理解,所以去了查看了帮助文档,但是在帮助文档的例子中出现了"chi2",没接触过,看过去就更懵了,查了一下资料知道"chi2"是在求卡方值,又没接触过,我整个人都裂了,但是还是耐着性子去......
  • 程序猿大战Python——面向对象——继承基础
    定义类的几种语法==目标:==了解定义类的标准语法。我们知道,可以使用class关键字定义类。在类的使用中,定义方式有三种:(1)【类名】(2)【类名()】(3)【类名(object)】说明:区别在于类名后面是否加其他内容。方式1语法:class类名:代码...方式2语法:class类名(......
  • python库BeeWare,一个如雷贯耳的可以创建原生应用程序的库
    目录BeeWare包括以下主要组件和工具:创建BeeWare虚拟环境配置BeeWare 创建一个新的BeeWare项目(HelloWorld!)尝试HelloWorld样例BeeWare 是一个开源项目,旨在帮助开发者使用Python创建原生应用程序,覆盖了移动、桌面和Web平台。BeeWare通过提供一系列工具和库......
  • Python连接Etcd集群基础教程
    1、背景介绍最近接手了一个项目,项目是使用Python开发的,其中使用到了Etcd,但是项目之前开发的方式,只能够支持单节点连接Etcd,不能够在Etcd节点发生故障时,自动转移。因此需要实现基于现有etcdsdk开发一个能够实现故障转移的功能,或者更换etcdsdk来实现故障转移等功能。先来看看项......
  • 【深度学习】python之人工智能应用篇——图像生成
    图像生成是计算机视觉和计算机图形学领域的一个重要研究方向,它指的是通过计算机算法和技术生成或合成图像的过程。随着深度学习、生成模型等技术的发展,图像生成领域取得了显著的进步,并在多个应用场景中发挥着重要作用。概述图像生成技术主要依赖于各种生成模型和算法,用于从文......
  • Pycharm或cmd在Terminal中运行tensorboard、pip等python包
    这个主要是添加python包的路径到环境变量里因为装了anaconda,所以我们要找的是对应虚拟环境里的包路径,一般是放在anaconda安装路径下的anaconda3\envs\环境名\Scripts里然后找到环境变量找到Path把文件路径添加这样就可以运行pip、tensorboard等包了......
  • 【MySQL连接器(Python)指南】02-MySQL连接器(Python)版本与实现
    文章目录前言MySQL连接器(Python)版本MySQL连接器(Python)实现总结前言MySQL连接器(Python),用于让Python程序能够访问MySQL数据库。要想让Python应用程序正确高效地使用MySQL数据,就需要深入了解MySQL连接器的特性和使用方法。MySQL连接器(Python)版本下表......
  • 【猫狗识别系统】图像识别Python+TensorFlow+卷积神经网络算法+人工智能深度学习
    猫狗识别系统。通过TensorFlow搭建MobileNetV2轻量级卷积神经算法网络模型,通过对猫狗的图片数据集进行训练,得到一个进度较高的H5格式的模型文件。然后使用Django框架搭建了一个Web网页端可视化操作界面。实现用户上传一张图片识别其名称。一、前言本研究中,我们开发了一个基于深......