描述
插入排序为将一个数插入到以排序好的数组中
目录
描述
原理
特性
代码
原理
我们以升序为例
先将新数插入到数组的最后一位,记录下新数的值
从新数的位置开始往前遍历,如果前一位大于新数的值
则将当前位置修改为前一位的值
如果前一位小于等于新数
则将当前为修改为新数
特性
1. 元素集合越接近有序,直接插入排序算法的时间效率越高
2. 时间复杂度:O(N^2)
3. 空间复杂度:O(1),它是一种稳定的排序算法
4. 稳定性:稳定
代码
void sort(int*a,int sum) {
int i, j, mn;
for (i = 0; i < sum-1; i++) {
mn = a[i + 1];
for (j = i + 1; j >= 0; j--) {
if (a[j - 1] > mn)
a[j] = a[j - 1];
else
break;
}
a[j] = mn;
}
}