插入排序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]; // 插入正确位置
    }
}
相关推荐
然我4 分钟前
面试官最爱的 “考试思维”:用闭包秒杀递归难题 🚀
前端·javascript·面试
JWASX19 分钟前
【RocketMQ 生产者和消费者】- 消费者重平衡(1)
java·rocketmq·重平衡
剽悍一小兔27 分钟前
自动化文档生成工具(亲测可运行)
java
程序员皮皮林28 分钟前
使用 Java + WebSocket 实现简单实时双人协同 pk 答题
java·websocket
栗然34 分钟前
Spring Boot 项目中使用 MyBatis 的 @SelectProvider 注解并解决 SQL 注入的问题
java·后端
im_AMBER34 分钟前
java复习 19
java·开发语言
陆少枫1 小时前
JDBC强化关键_009_连接池
java·数据库·mysql
安迪小宝1 小时前
2 geotools入门示例
java·spring boot
Moshow郑锴1 小时前
IDEA高效快捷键指南
java·ide·intellij-idea
小猫咪怎么会有坏心思呢1 小时前
华为OD机考-异常的打卡记录-字符串(JAVA 2025B卷)
java·开发语言·华为od