直接插入排序是一种比较简单的排序方法,他的原理类似于我们玩牌的时候抓牌,手中的牌是按照一定的顺序排列的,然后摸到的牌先进行查找顺序,将牌插到应该插入的地方,直到最后一张牌的插入,那么手中的牌都是有序的。
数列的直接插入排序也是这样的,将第一个数看做是排列有序的数列,然后将后面的数依次插入到数列中:
代码如下
void _insert_sort(int *A,int size)
{
int temp=0;
for(int i=1;i<size;i++)
{
if(A[i]<A[i-1])
{
temp=A[i];
int j=i-1;
for(;j>0 && A[j]>temp;j--)
{
A[j+1]=A[j];
}
A[j+1]=temp;
}
}
}