蓝桥杯省赛无忧 课件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;
}
相关推荐
Unlyrical8 分钟前
线程池详解(c++手撕线程池)
c++·线程·线程池·c++11
STY_fish_201232 分钟前
P11855 [CSP-J2022 山东] 部署
算法·图论·差分
myw07120533 分钟前
湘大头歌程-Ride to Office练习笔记
c语言·数据结构·笔记·算法
H_BB34 分钟前
算法详解:滑动窗口机制
数据结构·c++·算法·滑动窗口
淀粉肠kk35 分钟前
【C++】封装红黑树实现Mymap和Myset
数据结构·c++
Zero-Talent36 分钟前
“栈” 算法
算法
橘子编程37 分钟前
经典排序算法全解析
java·算法·排序算法
waeng_luo37 分钟前
【鸿蒙开发实战】智能数据洞察服务:待回礼分析与关系维护建议算法
算法·ai编程·鸿蒙
风筝在晴天搁浅37 分钟前
代码随想录 279.完全平方数
算法
不穿格子的程序员40 分钟前
从零开始刷算法——字串与区间类经典题:前缀和 + 单调队列双杀
算法·前缀和·哈希表·双向队列·单调队列