数据结构与算法(Dart)之选择排序(十三)

每次从未排序的部分选取最小(或最大)的元素,放到已排序部分的末尾。

开始默认第一个元素最小。

时间复杂度: O(n²), 不稳定

ini 复制代码
/// 选择排序
selectionSort(List<int> src) {
  for (int i = 0; i < src.length - 1; i++) {
    /// min记录最小值的下标
    int min = i;
    for (int j = i + 1; j < src.length; j++) {
      if (src[j] < src[min]) {
        min = j;
      }
    }

    /// 此时min已经保存最小值下标,将min换到最前面
    if (min != i) {
      int temp = src[i];
      src[i] = src[min];
      src[min] = temp;
    }
  }

  print("选择排序, src:$src \n");
}

void main() {
  selectionSort([36, 3, 4, 2, 1, 6, 5, 9, 7, 8, 10]);
}
相关推荐
旖-旎10 分钟前
深搜(二叉树的所有路径)(6)
c++·算法·leetcode·深度优先·递归
啦啦啦_999919 分钟前
3. KNN算法之 常用的距离度量方式(欧式&曼哈顿&切比雪夫&闵式距离)
算法
朝风工作室33 分钟前
实时全景拼接|支持任意路数输入,8*8K RTX3050 实测 10ms 内
图像处理·算法·计算机视觉
nianniannnn1 小时前
HNU计算机系统期中题库详解(五)位运算与逻辑运算
算法·位运算·计算机系统
徐新帅2 小时前
4181:【GESP2603七级】拆分
c++·学习·算法·信奥赛
黎梨梨梨_2 小时前
C++入门基础(下)(重载,引用,inline,nullptr)
开发语言·c++·算法
Jasmine_llq2 小时前
《B4411 [GESP202509 二级] 优美的数字》
算法·暴力枚举算法·逐位校验算法·统一数位判断算法·条件计数算法·自定义函数判断算法
做时间的朋友。2 小时前
小华地图寻宝
算法
贾斯汀玛尔斯2 小时前
每天学一个算法--单调栈(Monotonic Stack)
运维·服务器·算法
ZPC82102 小时前
ROS2 速度远快于 UDP的完整方案(同机节点)
人工智能·算法·计算机视觉·机器人