设置标兵,将小于和大于标兵的数分别放在标兵两侧。进行递归。
void quickSort(Student s[], int low, int high)
{
Student temp;
temp = s[low];
if (low < high)
{
int i = low, j = high;
while (i < j)
{
while (i < j&&s[j].number >= temp.number)// 从右向左找第一个小于x的数
j--;
if (i < j)
s[i++] = s[j];
while (i < j&&s[i].number < temp.number)// 从左向右找第一个大于等于x的数
i++;
if (i < j)
s[j--] = s[i];
}
s[i] = temp;
quickSort(s, low, i - 1);// 递归调用
quickSort(s, i + 1, high);
}
}