数据结构与算法(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;
      }
    }
  }
}

参考资料

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

相关推荐
热心网友俣先生3 分钟前
A题-药材的烘干问题-题意逐句翻译
算法·数学建模
2601_9603563810 分钟前
2026秋招运营分析师能力模型:SQL、指标体系、AIGC与业务分析
算法
hetao173383717 分钟前
校内场-提高组 ZYZSC-S-Round 4
c++·算法
彧azz1 小时前
二叉搜索树学习记录
c语言·数据结构·笔记·算法
手写码匠1 小时前
DeepSeek 函数调用实战:从零搭建一个会“动手“的 AI 助手
人工智能·深度学习·算法·aigc
果壳science2 小时前
《自然本源》如何实现狭义相对论的代数化
笔记·算法·几何学
302wanger3 小时前
分享一个工作习惯:整点看即时消息
算法
洋不写bug4 小时前
排序(一)基础排序,插入|希尔|冒泡|直接选择排序详解
java·算法·排序算法·插入排序·冒泡排序·希尔排序·直接选择排序
牧羊人.3334 小时前
动手学深度学习 03 | 卷积神经网络实现手写数字识别
人工智能·深度学习·神经网络·算法·cnn
AgentMaster5 小时前
数据治理工具选型指南:一套可复用的四阶段决策框架
大数据·数据结构·人工智能·算法