插入排序可是说是最简单的排序算法之一了,时间复杂度是O(N^2),下面是C语言实现
void insertion_sort(int *A, int n) {
int i, j, x;
//i从1开始而不是从0或2开始
for (i = 1; i < n; i++) {
x = A[i];
j = i - 1;
//j >= 0时迭代,j的位置可以看成是"空槽的前一个位置",所以最后一个空槽是下标为0的地方
while (j >= 0 && A[j] > x) {
A[j + 1] = A[j];
j--;
}
A[j + 1] = x;
}
}