插入排序就是将元素插入已经排好序的序列中。
其实现如下:
void insert_sort(int *array, int length)
{
int i = 0;
int value = 0;
int j = 0;
for(i = 1; i < length; ++i)
{
value = array[i];
for(j = i -1; j >= 0 && array[j] > value; --j)
{
array[j + 1] = array[j];
}
array[j + 1] = value;
}
}
插入排序的时间复杂度为O(n ^ 2); 该算法不是一个稳定的算法,如果有相同的元素,排序之后二者之前的顺序可能会打乱