前言
刚开始学习排序算法,我们可以从简单到复杂,直接插入排序是一种非常简单的排序,我们日常生活中也是非常普遍的,学习排序我们可以通过简单到难,为我们下一节希尔排序打好基础。
基本思想
按照大小直接插入排序我们日常生活中玩扑克牌时,就是利用了插入排序的思想
代码的实现
代码的实现方式有多重多样,每个人的风格不同实现的方式会有偏差,代码实现仅供参考
for (int i = 0; i < n; i++)
{
int end = i;
while (end > 0)
{
if (a[end] < a[end - 1])
{
int tmp = a[end];
a[end] = a[end - 1];
a[end - 1] = tmp;
--end;
}
else
break;
}
}
特性总结
- 元素集合越接近有序,直接插入排序算法的时间效率越高
- 时间复杂度:O(N^2)
- 空间复杂度:O(1),它是一种稳定的排序算法
- 稳定性:稳定