数据结构与算法(Dart)之冒泡排序(十二)

每次将相邻的两个元素进行比较,看是否满足大小关系要求,如果不满足,就交换这两个相邻元素的次序。

一次冒泡至少让一个元素移动到它应该排列的位置,重复N次,就完成了冒泡排序。

时间复杂度

  • 最好情况(已全部有序):O(n)
  • 最坏情况(全部逆序):O(n²)

空间复杂度

  • O(1)
  • 稳定
css 复制代码
///冒泡排序
Future<void> bubbleSort(List<int> src) async {
  //控制需要进行排序的次数。每一轮循环都会确定一个数字的最终位置。
  for (int i = 0; i < src.length; ++i) {
    //遍历当前未排序的元素,通过相邻的元素比较并交换位置来完成排序。
    for (int j = 0; j < src.length - i - 1; ++j) {
      //如果 _numbers[j] 大于 _numbers[j + 1],则交换它们的位置,确保较大的元素移到右边。
      if (src[j] > src[j + 1]) {
        int temp = src[j];
        src[j] = src[j + 1];
        src[j + 1] = temp;
      }
    }
  }
}

参考资料

数据结构 ---七大排序算法(图文详细版)

相关推荐
Doubbbbbbble云1 分钟前
图算法中的剪枝技术与启发式优化分析4
算法·机器学习·剪枝
鶴哥只手遮天3 分钟前
CFL3D深度解析:NASA经典CFD求解器的架构、算法与工程实践
算法
维克兜率天5 分钟前
【维克】价差交易实战:配对交易的核心参数设置
大数据·笔记·算法·量化
dtq04245 分钟前
数据结构 - 树的概念
c语言·数据结构·学习·算法
晒太羊的猫6 分钟前
hot100多维动态规划刷题
算法·动态规划
Dream it possible!11 分钟前
LeetCode_热题100_知识点总结
算法·leetcode·职场和发展
鶴哥只手遮天11 分钟前
从像素到战场:红外场景仿真引擎的核心技术深度解析
算法
anew___13 分钟前
《从零手写操作系统 (19):Ext2文件系统实战——从内存到磁盘的跨越》
java·服务器·前端·数据库·算法
盘古开天166616 分钟前
PPO算法原理详解(上):从策略梯度到近端策略优化的演进之路
人工智能·算法·机器学习·强化学习·ppo
云栈开源日记17 分钟前
机器人运动规划从A*到Minimum Snap四大算法全解析
算法·ai·机器人