int partitionNew(int n[],int left,int right)
{
int lo;
lo=left;
int val=n[left];
int hi=right;
while(lo<hi){
while(lo<hi && n[hi]>=val)
{
// if(n[hi]<val)
// {
// printf("%d<%d:n[%d]<n[%d]\n",n[hi],n[lo],hi,lo);
// printf("n[%d]=n[%d]\n",lo,hi);
// printArry(n,8);
// break;
//}
//else
--hi;
}
n[lo]=n[hi];
while(lo<hi && n[lo]<=val)
{
//if(n[lo]>val)
//{
// printf("%d>%d:n[%d]>n[%d]\n",n[lo],n[hi],lo,hi);
// n[hi]=n[lo];
// printf("n[%d]=n[%d]\n",hi,lo);
// printArry(n,8);
// break;
//}
//else
++lo;
}
n[hi]=n[lo];
}
n[lo]=val;
printArry(n,8);
static counter=0;
printf("%d:val=%d,return %d\n",++counter,val,lo);
return lo;//<=>return hi
}