插入排序_直接插入排序
程序代码:
void InsertionSort(Elem R[],int n)
{
for(i = 2;i <= n;i++)
if(R[i-1] > R[i])
{
R[0] = R[i];
for(j = i-1;R[0] < R[j];j--)
R[j+1] = R[j];
R[j+1] = R[0];
}
}
最好情况:记录有序,比较次数为n-1,移动次数为0;
最差情况:记录逆序,比较次数2+3+---+n=(n+2)(n-1)/2,移动次数为(2+1)+(3+1)+---+(n+1)=(n+4)(n-1)/2。
稳定性:稳定。