void BinaryInsertSort(int A[],int n)
{
int i,k,r;
int temp;
for(i=1;i<n;i++)
{
temp = A[i];
k=0;
r = i -1;
while(k <= r)
{
int m;
m = (k + r) /2;
if(temp < A[m])
r = m -1;
else
k = m + 1;
}
for(r=i;r>k;r--)
A[r] = A[r-1];
A[k] = temp;
}
}
int main()
{
int A[] = {10,50,2,65,31,145};
BinaryInsertSort(A,6);
int i;
for(i=0;i<6;i++)
printf("%d ",A[i]);
printf("\n");
return 0;
}