插入排序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]; // 插入正确位置
    }
}
相关推荐
不爱学英文的码字机器6 小时前
深度解析《AI+Java编程入门》:一本为零基础重构的Java学习路径
java·人工智能·后端·重构
qq_338032926 小时前
VUE的生命周期钩子,vue2和vue3的生命周期钩子的核心差异
前端·javascript·vue.js
晨非辰6 小时前
《数据结构风云》递归算法:二叉树遍历的精髓实现
c语言·数据结构·c++·人工智能·算法·leetcode·面试
不光头强6 小时前
spring IOC
java·spring·rpc
懒羊羊不懒@6 小时前
JavaSe—泛型
java·开发语言·人工智能·windows·设计模式·1024程序员节
天天向上10246 小时前
在 Vue3 项目中使用 el-tree
javascript·vue.js·elementui
天天向上10246 小时前
vue2 vue3 修改elementUI和elementPlus主题颜色
前端·javascript·elementui
JIngJaneIL6 小时前
口腔健康系统|口腔医疗|基于java和小程序的口腔健康系统小程序设计与实现(源码+数据库+文档)
java·数据库·spring boot·小程序·论文·毕设·口腔医疗小程序
Zhang青山7 小时前
使用 Nginx 轻松处理跨域请求(CORS)
java·后端
麦麦鸡腿堡7 小时前
Java的三代日期类(Date,Calendar,LocalDateTime)
java·开发语言