TB椰程 TypeBuddy 打字搭子

插入排序

CSP-J · 编程模板 · 片段 · cpp · 难度 3/5 · 共 341 字

把数组升序排列,边比较边后移

  • 排序
  • 数组

前置内容

正文

// ── 插入排序 ──
// 像整理手里的扑克牌:
// 左手牌始终有序,摸一张插到位
for (int i = 1; i < n; i++) {
    // 第 0 张默认已排好
    int key = a[i];
    // 摸起来的牌先拿在手里
    int j = i - 1;
    // 从右往左找插入点
    while (j >= 0 && a[j] > key) {
        // 比 key 大的牌右移一格
        a[j + 1] = a[j];
        j--;
    }
    // 空位就是 key 的家
    a[j + 1] = key;
}
// 基本有序时接近 O(n)
// 最坏 O(n^2)

CSP-J · 编程模板的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK