插入排序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]; // 插入正确位置
    }
}
相关推荐
云浪1 小时前
Go 并发实战:从零实现一个高并发安全的任务调度器
javascript·后端·go
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 14 章 MCP 服务端(上):注解式实现与工具来源
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 15 章 MCP 服务端(下):三种协议形态、Streamable 传输与状态管理
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 16 章 向量存储(上):`VectorStore` 接口体系、`BatchingStrategy`
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 12 章 工具循环的流式形态、Usage 累加与扩展体系
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 23 章 模型供应商实现:从 `OpenAiSetup` 到 Bedrock
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 06 章 内置 Advisor 全景:13 个实现逐个剖到源码级
java·人工智能·开源
鶴哥只手遮天4 小时前
Spring AI 2.0.1 深度解析-第 03 章 消息体系与 Prompt:不可变模型、`ChatOptions` 与模板渲染
java·人工智能·开源
鶴哥只手遮天4 小时前
Spring AI 2.0.1 深度解析-第 24 章 生产实践与 2.x 迁移:陷阱清单、AOT 与调优
java·人工智能·开源
鶴哥只手遮天4 小时前
Spring AI 2.0.1 深度解析-第 10 章 工具调用(中):执行链路、结果转换与工具限制
java·人工智能·开源