蓝桥杯省赛无忧 课件42 插入排序

01 插入排序的思想

02 插入排序的实现

03 例题讲解

csharp 复制代码
#include <iostream>
#include <vector>
using namespace std;
void insertionSort(vector<int>& arr) {
    int n = arr.size();
    for (int i = 1; i < n; i++) {
        // 选择arr[i]作为要插入的元素
        int key = arr[i];
        // 将arr[i]与前面的元素比较后插入正确的位置
        int j = i - 1;
        // 将大于key的元素向后移动
        while (j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];
            j = j - 1;
        }
        // 插入key
        arr[j + 1] = key;
    }
}
int main() {
    int n;
    cin >> n;
    vector<int> treasures(n);
    for (int i = 0; i < n; i++) {
        cin >> treasures[i];
    }
    insertionSort(treasures);
    for (int i = 0; i < n; i++) {
        cout << treasures[i] << (i < n - 1 ? " " : "\n");
    }
    return 0;
}
相关推荐
J***79396 分钟前
后端在分布式系统中的数据分片
算法·哈希算法
Dream it possible!1 小时前
LeetCode 面试经典 150_二叉搜索树_二叉搜索树中第 K 小的元素(86_230_C++_中等)
c++·leetcode·面试
sin_hielo2 小时前
leetcode 2872
数据结构·算法·leetcode
dragoooon342 小时前
[优选算法专题八.分治-归并 ——NO.49 翻转对]
算法
AI科技星2 小时前
为什么宇宙无限大?
开发语言·数据结构·经验分享·线性代数·算法
Bona Sun3 小时前
单片机手搓掌上游戏机(十四)—pico运行fc模拟器之电路连接
c语言·c++·单片机·游戏机
Zero-Talent3 小时前
位运算算法
算法
oioihoii3 小时前
性能提升11.4%!C++ Vector的reserve()方法让我大吃一惊
开发语言·c++
不穿格子的程序员3 小时前
从零开始刷算法——双指针-三数之和&接雨水
算法·双指针
小狗爱吃黄桃罐头4 小时前
《C++ Primer Plus》模板类 Template 课本实验
c++