天天看點

排序算法系列五(二分插入排序)

for( int i=0;i<n;i++ )

  {

   int k=a[i];

   int l=0,r=i-1,j;

   while(l<=r)

   {

    j=(l+r)/2;

    if(a[j]<k)

     r=j-1;

    else

     l=j+1;

   }

   for( j=i-1 ; j>=r+1 ; j-- )

    a[j+1]=a[j];

   a[r+1]=k;

  } 

繼續閱讀