当前位置: 首页 > 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.lryc.cn/news/579722.html

相关文章:

  • LED闪烁 + PWM呼吸灯
  • 【React Native原生项目不能运行npx react-native run-android项目】
  • Redis 持久化详解、使用及注意事项
  • 《C++MLpack库 聚类算法》实战指南
  • day15——Java常用API(二):常见算法、正则表达式与异常处理详解
  • 玄机——某医院系统被脱库
  • 板凳-------Mysql cookbook学习 (十一--------3)
  • 项目中数据库表设计规范与实践(含案例)
  • OS15.【Linux】gdb调试器的简单使用
  • 力扣网编程第80题:删除有序数组中的重复项(简单)
  • springsecurity---使用流程、加密机制、自定义密码匹配器、token字符串生成
  • 【STM32实践篇】:I2C驱动编写
  • Vue如何处理数据、v-HTML的使用及总结
  • 8分钟讲完 Tomcat架构及工作原理
  • Node.js与Webpack
  • 前端面试专栏-算法篇:17. 排序算法
  • Spring SseEmitter 系统详细讲解
  • XILINX FPGA如何做时序分析和时序优化?
  • 手机内存融合是什么意思
  • Redis—哨兵模式
  • C++之路:类基础、构造析构、拷贝构造函数
  • 算法学习笔记:5.后缀数组——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • MySQL 学习 之 你还在用 TIMESTAMP 吗?
  • Functionize 结合了 AI 与云平台的现代化自动化测试工具
  • MySQL 8.0 OCP 1Z0-908 题目解析(16)
  • curl for android
  • 高通QCS8550部署Yolov10模型与性能测试
  • ADC笔试面试题型和详细解析下
  • 蒙特卡洛方法:随机抽样的艺术与科学
  • c++ 的标准库 --- std::