跳到正文
信奥逐课

第 172 课

选择排序

🟢 入门 约 5 分钟

一句话理解

选择排序:每次在未排序里选最小的放到当前位置。

为什么要学

交换次数少,但比较仍是 n²。

讲解

第 i 轮在 i..n-1 找最小,与 a[i] 交换。

不稳定:相等元素相对顺序可能变。

例子

for (int i = 0; i < n; i++) {
    int k = i;
    for (int j = i + 1; j < n; j++)
        if (a[j] < a[k]) k = j;
    swap(a[i], a[k]);
}

每轮选择一个最小值放到前面。

常见错误

练习 做完再看下一课

选择排序每轮在未排序部分找最值。

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课