快速排序,NlogN
void quick_sort(int s[], int left, int right)
{
if (left < right)
{
int i = left, j = right, x = s[left];
while (i < j)
{
while(i < j && s[j] >= x) // 从右向左找第一个小于x的数
j--;
if(i < j)
{
s[i] = s[j];
i++;
}
while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数
i++;
if(i < j)
{
s[j] = s[i];
j--;
}
}
s[i] = x;
quick_sort(s, left, i - 1); // 递归调用
quick_sort(s, i + 1, right);
}
}