插入排序_直接插入排序

程序代码:

  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。

稳定性:稳定。

posted @ 2012-09-12 20:05  毛毛hhmm  阅读(145)  评论(0编辑  收藏  举报