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

冒泡排序及其优化方式

一、基本概念

冒泡排序(Bubble Sort)是一种简单的比较排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

核心思想:通过相邻元素的比较和交换,将较大的元素逐渐"浮"到数列的末端

二、基础实现

基础冒泡排序算法

Java实现
public class BubbleSort {public static void bubbleSort(int[] arr) {// 外层循环控制排序轮数for (int i = 0; i < arr.length - 1; i++) {// 内层循环控制每轮比较次数for (int j = 0; j < arr.length - 1 - i; j++) {// 如果前一个元素大于后一个元素,则交换if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}
}
Python实现
def bubble_sort(arr):n = len(arr)# 外层循环控制排序轮数for i in range(n - 1):# 内层循环控制每轮比较次数for j in range(n - 1 - i):# 如果前一个元素大于后一个元素,则交换if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]
Golang实现
func BubbleSort(arr []int) {n := len(arr)// 外层循环控制排序轮数for i := 0; i < n-1; i++ {// 内层循环控制每轮比较次数for j := 0; j < n-1-i; j++ {// 如果前一个元素大于后一个元素,则交换if arr[j] > arr[j+1] {arr[j], arr[j+1] = arr[j+1], arr[j]}}}
}

基础冒泡排序的时间复杂度:最好情况O(n),最坏情况O(n²),平均情况O(n²);空间复杂度O(1)

三、优化方式

http://www.dtcms.com/a/266049.html

相关文章:

  • Javaweb - 10.1 Servlet
  • 两个手机都用同个wifi,IP地址会一样吗?如何更改ip地址
  • Redis实战:数据安全与性能保障
  • linux测试端口是否可被外部访问
  • ROS三维环境建模——基于OctoMap库
  • c++ 的标准库 --- std::
  • 【25-cv-07436】Keith律所代理《Four Season - Winter Breeze》画作维权!
  • NFSv4 ACL配置与参数
  • ubuntu防火墙使用
  • 【ChatTTS】ChatTTS使用体验
  • 关于系统无法找到 arm-linux-gcc 命令,这表明你的环境中尚未安装 ARM 交叉编译工具链。以下是详细的解决方案:(DIY机器人工房)
  • 通过HBA卡新增外接存储,详细流程
  • R 语言安装使用教程
  • Oracle面试题-体系结构
  • 《dlib库中的聚类》算法详解:从原理到实践
  • ABP VNext + Cosmos DB Change Feed:搭建实时数据变更流服务
  • 计算机科学导论(10)什么是BIOS
  • 探秘展销编辑器:相较于传统展销的卓越优势与甄选指南​
  • 按键精灵支持安卓14、15系统,兼容64位环境开发辅助工具
  • github如何创建一个自己的仓库保姆级教程
  • VBScript 安装使用教程
  • Gartner《Guidance Framework for a Modern Data Integration Architecture》学习心得
  • 分块矩阵怎么取逆?
  • svd分解求旋转平移矩阵
  • 基于SpringBoot+Vue的酒类仓储管理系统
  • C# 进行音视频编解码开发
  • 讯飞星火深度推理模型X1,为教育医疗带来革新
  • AUTOSAR图解==>AUTOSAR_AP_EXP_ParallelProcessingGuidelines
  • 打造一个可维护、可复用的前端权限控制方案(含完整Demo)
  • NestJS 系列教程(二):模块化架构与依赖注入机制详解