数据结构与算法(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]);
}
相关推荐
苏纪云6 小时前
蓝桥杯考前突击
c++·算法·蓝桥杯
W23035765736 小时前
经典算法详解:最长公共子序列 (LCS) —— 从暴力递归到动态规划完整实现
算法·动态规划·最长子序列
pzx_0016 小时前
【优化器】 随机梯度下降 SGD 详解
人工智能·python·算法
小肝一下6 小时前
每日两道力扣,day8
c++·算法·leetcode·哈希算法·hot100
无限进步_7 小时前
【C++】验证回文字符串:高效算法详解与优化
java·开发语言·c++·git·算法·github·visual studio
Meme Buoy7 小时前
18.补充数学1:生成树-最短路径-最大流量-线性规划
数据结构·算法
paeamecium7 小时前
【PAT甲级真题】- Count PAT‘s (25)
c++·算法·动态规划·pat考试·pat
汀、人工智能7 小时前
[特殊字符] 第89课:岛屿数量
数据结构·算法·数据库架构·图论·bfs·岛屿数量
九英里路7 小时前
cpp容器——string模拟实现
java·前端·数据结构·c++·算法·容器·字符串
卷福同学8 小时前
去掉手机APP开屏广告,李跳跳2.2下载使用
java·后端·算法