仔细分析算法 想清楚边界条件相当重要 好的思路可以使代码很简洁
void sort(int arr[],UINT32 nBeg,UINT32 nEnd)
{if (nEnd == nBeg )
{
return;
}
UINT32 nB = nBeg;
UINT32 nE = nEnd;
int nMid = arr[nBeg];
while(nEnd > nBeg)
{
if (arr[nEnd] >= nMid)
{
--nEnd;
continue;
}
else if (arr[nBeg] < nMid)
{
++nBeg;
continue;
}
else
{
swap(arr[nEnd],arr[nBeg]);
}
}
sort(arr,nB,nBeg);
sort(arr,nBeg+1,nE);
}