插入排序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]; // 插入正确位置
    }
}
相关推荐
辞旧 lekkk7 分钟前
【c++】封装红黑树实现mymap和myset
c++·学习·算法·萌新
一 乐7 分钟前
购物|明星周边商城|基于springboot的明星周边商城系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·spring
科普瑞传感仪器9 分钟前
从轴孔装配到屏幕贴合:六维力感知的机器人柔性对位应用详解
前端·javascript·数据库·人工智能·机器人·自动化·无人机
笃行客从不躺平11 分钟前
线程池监控是什么
java·开发语言
星轨初途12 分钟前
C++的输入输出(上)(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
n***F87514 分钟前
SpringMVC 请求参数接收
前端·javascript·算法
y1y1z16 分钟前
Spring框架教程
java·后端·spring
Liangwei Lin24 分钟前
洛谷 P1025 [NOIP 2001 提高组] 数的划分
算法
TechMasterPlus29 分钟前
VScode如何调试javascript文件
javascript·ide·vscode
yuuki23323342 分钟前
【C++】类和对象(上)
c++·后端·算法