void quickSort(int *s, int left, int right)
{
if(left < right)
{
int i,j,key;
i = left;
j = right;
key = s[i];
while(j > i)
{
while(i < j && s[j]>=key)
{
j--;
}
if(i < j)
{
s[i] = s[j];
i++;
}
while(i < j && s[i]<key)
{
i++;
}
if(i<j)
{
s[j] = s[i];
j--;
}
}
s[i] = key ;
quickSort(s, left, i-1);
quickSort(s, i+1, right);
}
}
主要过程
以第一位数为基准,从右开始找比它小的数,再从左找一个比它大的数,在新位置重置然后循环直到数组长度为1
特别注意考虑:
什么时候返回空值(数组不改变)
什么时候退出循环(i==j)