void insertSort(int a[], int n)
{
int i, j;
for(i = 2; i < n; i++)
{
a[0] = a[i];
for(j = i - 1; a[0] < a[j]; --j)
a[j+1] = a[j];
a[j +1] = a[0];
}
}
void insertSort(int a[], int n)
{
int i, j, low, high, mid;
for(i = 2; i < n; i++)
{
a[0] = a[i];
low = 1;
high = i - 1;
while(low < high)
{
mid = (low + high )/2;
if(a[mid] > a[0]) high = mid - 1;
else low = mid + 1;
}
for(j = i -1; j >= high + 1; --j)
a[j+1] = a[j];
a[high+1] = a[0];
}
}