首页 > 编程语言 >Python 实现 冒泡排序算法示例

Python 实现 冒泡排序算法示例

时间:2024-12-31 22:28:47浏览次数:3  
标签:arr 示例 Python 元素 交换 冒泡排序 列表 排序

冒泡排序算法示例

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的列表,比较相邻的元素,并交换它们的位置,如果它们的顺序错误。这个过程会重复进行,直到没有需要交换的元素为止,这时列表就已经排序完成。

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

# 示例使用
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print("排序后的数组:", sorted_arr)
输出结果
排序后的数组: [11, 12, 22, 25, 34, 64, 90]

冒泡排序的步骤

  1. 比较相邻元素:从列表的第一个元素开始,比较相邻的两个元素。
  2. 交换位置:如果前一个元素比后一个元素大,则交换它们的位置。
  3. 重复遍历:重复上述步骤,直到没有需要交换的元素为止。
  4. 优化:通过设置标志位,可以在列表已经有序的情况下提前退出,减少不必要的比较。

时间复杂度

  • 最坏情况:O(n²) —— 当列表是逆序的时候。
  • 最好情况:O(n) —— 当列表已经有序的时候。
  • 平均情况:O(n²)

空间复杂度

  • O(1) —— 冒泡排序是一种原地排序算法,不需要额外的存储空间。

优缺点

优点

  • 实现简单,易于理解。
  • 对于小规模数据排序效果较好。

缺点

  • 对于大规模数据排序效率较低。
  • 时间复杂度较高,不适合处理大数据集。

冒泡排序虽然简单,但在实际应用中由于其较高的时间复杂度,通常不用于处理大规模数据。

标签:arr,示例,Python,元素,交换,冒泡排序,列表,排序
From: https://blog.csdn.net/hzether/article/details/144858497

相关文章

  • Python 中常用的算法
    1.排序算法用于将数据按特定顺序排列。冒泡排序(BubbleSort)选择排序(SelectionSort)插入排序(InsertionSort)快速排序(QuickSort)归并排序(MergeSort)堆排序(HeapSort)计数排序(CountingSort)基数排序(RadixSort)桶排序(BucketSort)2.搜索算法用于在数据集中查找特定元素。......
  • WxPython跨平台开发框架之前后端结合实现附件信息的上传及管理
    在使用wxPython开发跨平台应用时,结合后端实现附件信息的上传和管理是一种常见需求。WxPython跨平台开发框架是前后端分离的框架,前端采用的是WxPython+aiohttp 来构建跨平台的界面展示和处理,后端使用FastAPI,SQLAlchemy,Pydantic,Redis等技术构建的项目。后端数据库访问......
  • 【音乐探索新技能】用Python爬虫豆瓣音乐排行榜,发现你的下一首心头好!
    Hey,亲爱的音乐控们!你是否还在为找不到心仪的好音乐而头疼?是否还在为错过那些小众但超有味道的歌曲而遗憾?别急,今天我要给你们带来一个超级实用的小技巧——用Python爬虫豆瓣音乐排行榜,让你轻松成为音乐界的“先知”!步骤一:环境准备首先,你得有个Python环境。推荐使用Anacond......
  • Python入门教程 —— 安装软件
    1.安装python下载python访间Python官网:https:/www.python.org  安装python自定义安装,配置Python的环境变量。 选着安装路径,然后安装安装成功后,查看python版本:python-V2.安装 pycharm选着安装路径......
  • PaddleTS :一个易用的深度时序建模的Python库
    GitHub-PaddlePaddle/PaddleTS:AwesomeEasy-to-UseDeepTimeSeriesModelingbasedonPaddlePaddle,includingcomprehensivefunctionalitymoduleslikeTSDataset,Analysis,Transform,Models,AutoTS,andEnsemble,etc.,supportingversatiletasksliketim......
  • Linked_list in python
    Problem2.1:StoreDigits(100pts)Writeafunctionstore_digitsthattakesinanintegernandreturnsalinkedlistwhereeachelementofthelistisadigitofn.YoursolutionshouldruninLineartimeinthelengthofitsinput.Note:Youmaynotuse......
  • java和php语言实现堆排序算法代码示例
    堆排序(HeapSort)是一种基于堆数据结构的比较排序算法。堆是一棵完全二叉树,分为最大堆和最小堆。最大堆中父节点的值总是大于或等于其子节点的值,而最小堆则相反。堆排序通过构建堆,然后反复将堆顶元素与末尾元素交换,并调整剩余元素为堆,最终实现排序。堆排序也是常见的算法题目。Jav......
  • 使用python搭建网站的简明步骤
    选择 Web 框架Python 有许多 Web 框架,如 Flask、Django 等。Flask 是一个轻量级框架,适合初学者和小型项目;Django 是一个功能强大、内置组件丰富的框架,适合大型项目。以 Flask 为例进行介绍。首先,需要安装 Flask。可以使用pip命令安装,在命令行中执行pipinstallf......
  • 从零开始的Python世界生活——语法基础先导篇(Python小白零基础光速入门上手)
    从零开始的Python世界生活——语法基础先导篇(Python小白零基础光速入门上手)1.准备阶段1.1下载并安装Python1.1.1下载步骤:访问Python官方网站:点击这里下载Python在页面上,选择适合你操作系统的Python版本(Windows、macOS或Linux)。点击下载按钮,开始下载安装程序。1.1.2安......
  • 8天学习python笔记04
    day04进制和编码目标:了解一些常见名词背后的含义。1.python代码运行方式脚本式python3~/PyCharm软件/学习Python/4.1.py源文件上右键----点击runxx即可运行交互式1、cmd进入命令行,输入python回车,即可进入交互式环境2、输入print("helloworld")回车,即可运行3......