冒泡排序算法及其Python实现

server/2024/10/21 11:47:05/

冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历待排序的元素,一次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。重复地进行直到没有需要交换的元素,这样最大(或最小)的元素就会移动到最后,然后算法会从剩余的未排序元素中继续上述步骤,直到所有元素都排序完成。 

冒泡排序算法步骤

  1. 比较相邻的元素。如果第一个比第二个大(小),就交换它们两个;
  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这样在最后的元素应该会是最大(小)的数;
  3. 针对所有的元素重复以上步骤,除了第一一个;
  4. 重复步骤1~3,直到排序完成。

Python实现

下面是用Python编写的冒泡排序算法实现:

python">arr = [1, 11, 5, 8, 7, 5, 66, 56]def bubble_sort(arr):""":param arr::return:"""i = 0# 外层循环所有while i <= len(arr) - 1:j = 1 + iwhile j <= len(arr) - 1:if arr[j] < arr[i]:arr[j],arr[i] = arr[i], arr[j]j += 1i += 1bubble_sort(arr)
print(arr)

缺点

冒泡排序虽然不是最高效的排序算法,但它的概念简单,易于实现。然而,对于大型数据集来说,冒泡排序的性能不佳,因为它的时间复杂度为O(n^2)。在实际应用中,更常用的排序算法快速排序、归并排序等,它们具有更好的性能表现。


http://www.ppmy.cn/server/10981.html

相关文章

如何使用WEB前端模板

我最近想搞一搞前端&#xff0c;前端属实不太行&#xff0c;像前端搞个模板直接套一下。但是发现下载下来也有点不知道怎么用起来&#xff0c;这里我就把我的一个Bootstrap工程套用模板的具体过程记录一下。 首先创建一个前端工程&#xff0c;我这里用的是Bootstrap5&#xff…

【sping】在logback-spring.xml 获取项目名称

在日志文件中我们想根据spring.application.name 创建出的文件夹。 也不想死在XML文件中。 application.yml spring:application:name: my-demo logback-spring.xml <springProperty name"application_name" scope"context" source"spring.app…

Indicator-Sysmonitor|Ubuntu 标题栏显示实时网速、CPU使用率等

分享一款在Ubuntu系统中非常实用的工具&#xff0c;名为Indicator-Sysmonitor。这是一款开源软件&#xff0c;你可以在GitHub上找到它&#xff0c;它能够让你在Ubuntu的任务栏中实时监控CPU和内存使用情况。虽然Ubuntu并没有像Windows端的TrafficMonitor那样广为人知的实时监控…

基于STM32单片机的智能家居环境监测与控制系统设计

基于STM32单片机的智能家居环境监测与控制系统设计 摘要&#xff1a;随着物联网技术的不断发展&#xff0c;智能家居环境监测与控制系统的应用越来越广泛。本文设计了一种基于STM32单片机的智能家居环境监测与控制系统&#xff0c;该系统能够实时监测环境中的温湿度和天然气浓…

Git克隆项目到另一台服务器上详细操作

Git克隆项目到另一台服务器上详细操作 一 克隆原始仓库 首先&#xff0c;确保你从原始仓库克隆了所有分支。通常使用标准的 git clone 命令会拉取所有远程分支的历史&#xff0c;但只会在本地创建默认分支&#xff08;通常是 main 或 master&#xff09;。在克隆前&#xff0…

ChatGPT:让论文写作变得轻松愉快

ChatGPT无限次数:点击直达 ChatGPT&#xff1a;让论文写作变得轻松愉快 在当今信息爆炸的时代&#xff0c;论文写作是许多学术研究者和学生必须面对的挑战之一。从收集数据到整理结构&#xff0c;再到撰写内容&#xff0c;每个步骤都需要耗费大量时间和精力。但是&#xff0c;…

阿斯达年代记三强争霸官网地址+游戏账号注册+游戏下载安装教程

阿斯达年代记国际服&#xff0c;游戏分为三个势力&#xff0c;分别是阿斯达、亚高和不罚者&#xff0c;每个玩家都必须选择一个势力&#xff0c;而每个势力每周将会诞生一名势力族长&#xff0c;将会从五名候选人中投票产生&#xff0c;想要进入候选人名单&#xff0c;必须每天…

Linux : Oracle远程连接调用缺少客户端依赖(ORA-00000: DPI-1047)

连接报错&#xff1a; ORA-00000: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help 解决方法&…