当前位置: 首页 > news >正文

冒泡排序(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.mrgr.cn/news/55427.html

相关文章:

  • Linux:线程及其控制
  • SQL-SERVER导入excel表格
  • 【数据结构与算法】之单链表反转
  • CSS3 提示框带边角popover
  • 多个版本的GCC(GNU编译器集合)可以同时安装并存
  • 数据轻松上云——Mbox边缘计算网关
  • 用Python制作《我的世界》风格小游戏:入门指南
  • java获取当前服务器的cpu核数、cpu信息
  • git 免密的方法
  • 如何设计简易版Synchronized:实现锁的机制与优化策略
  • NAND 数据恢复:使用 VNR 闪存数据恢复软件提取闪存转储中的块
  • 记录一下,解决el-table表格自定义数据后,数据不显示问题
  • 探索直播美颜SDK技术:视频美颜平台的技术实现解析
  • 数据结构练习题(链表-p66)
  • spark sql 广播模式参数
  • 新手必看!项目管理PMP,离了工具你还OK吗?
  • 仓颉刷题遇到问题汇总
  • Linux——shell 编程基础
  • 用AI自动化视频创作,轻松解放双手!!
  • 一款开源屏幕共享神器,有浏览器就能投屏,爽歪歪了
  • robocopy 拷贝远程服务器文件夹
  • Open3D-Geometry-12:ISS固有形状特征检测模块
  • excel导出加密
  • Win安装Redis
  • Fastapi之model_validator
  • 基于springboot招聘信息管理系统设计与实现(源码+定制+开发)