时间复杂度:O(n2)
插入排序是一种稳定的排序算法。
插入排序对于一个少量元素的排序来讲,是一个有效的算法。
插入排序像人排序一手扑克牌,开始时人左手为空,桌子牌牌面朝下,每次从桌子上拿一张牌放到左手,并遍历左手的牌,将这张牌插入到合适的位置,所以左手的牌永远是有序的。
伪代码:
INSERTION-SORT(A)
for j = 2 to A.length;
key = A[j];
//insert A[j] into the sequence A[1..j-1]
i = j - 1;
while i>0 and A[i] > key
A[i+1] = A[i];
i = i-1;
A[i+1] = key;
C++实现:
//插入排序算法
for (int i = 1; i < size; i++)
{
for (int j = i - 1; j >= 0; j--)
{
if (a[j] > a[j+1])
{
int key = a[j+1];
a[j+1] = a[j];
a[j] = key;
}
}
}