插入排序针对数量较小的序列特别有效,其算法思想为向有序子序列中插入元素a[i]使新的序列仍有序,最坏时间复杂度为O(n2)。
算法实现见InsertSort.cpp
void insertSort(int a[], int size)
{
int i, j, tmp;
for (i = 1; i < size; i++) {
tmp = a[i];
for (j = i; j > 0 && tmp < a[j - 1]; j--) {
//元素位置向后平移1
a[j] = a[j - 1];
}
a[j] = tmp;
}
}