插入排序C语言版

📌 插入排序(Insertion Sort)

🔍 核心思想:
将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加 1 的有序表。

🎮 生活比喻:就像我们整理扑克牌一样,每次把一张新牌插到已排序的手牌中合适的位置。

⏱ 时间复杂度:
情况 时间复杂度
最坏情况 O(n²)
最好情况(已有序) O(n)
平均情况 O(n²)
🧠 稳定性:✅ 稳定排序
💻 实现代码(C语言):

cs 复制代码
void InsertionSort(SorList *L) {
    int i, j;
    keyType k;

    for (i = 2; i <= L->length; i++) {
        L->data[0] = L->data[i]; // 保存当前元素到哨兵位置
        j = i - 1;

        while (j >= 1 && L->data[j] > L->data[0]) {
            L->data[j + 1] = L->data[j];
            j--;
        }

        L->data[j + 1] = L->data[0]; // 插入正确位置
    }
}
相关推荐
apcipot_rain4 小时前
C++转Java日记(06)
java·开发语言
金銀銅鐵8 小时前
带您看懂字节码指令(一):一帧里有什么
java·后端·ai编程
专注仿真9 小时前
知识问答模型用到的算法集详解及代码实例
python·算法·代码·大模型训练·控制算法
nice_lcj52010 小时前
【从零理解 Spring AI · 14】RAG 的四个环节:加载、切分、向量化、检索
java·spring boot·embedding·向量数据库·rag·spring ai·ai应用开发
罗西的思考10 小时前
【轻量化复刻大模型 / KIMI K3】AttnRes 模块交互式演示
人工智能·算法·机器学习
学长毕设12 小时前
基于springboot科创竞赛信息平台-附源码
java·spring boot·后端
聪明的笨猪猪12 小时前
Java 工程案例:AI 生成 @Async 异步线程池踩坑
java·经验分享·面试·ai编程
学长毕设13 小时前
基于SpringBoot公务员考试交流平台-附源码
java·spring boot·后端
1-1=013 小时前
Vue 3 模板语
前端·javascript·vue.js
风卿14 小时前
看着AI写代码太孤独了,来欣赏星云吧:一个DSH 装饰插件
前端·javascript