void quicksort(int a[], int low, int high)
{
int middle;
if (low >= high) return;
middle = split(a, low, high);
quicksort(a, low, middle - 1);
quicksort(a, middle + 1, high);
}
int split(int a[], int low, int high)
{
int part_element = a[low];
for (;;) {
while (low < high && part_element <= a[high])
high--;
if (low >= high) break;
a[low++] = a[high];
while (low < high && a[low] <= part_element)
low++;
if (low >= high) break;
a[high--] = a[low];
}
a[high] = part_element;
return high;
}
由上面两个函数改进一下,该怎么写啊?
怕大家无法理解题意,就是排序字符串,先按首字母排序,首字母相同就看第二个字母,以此类推。
split和quicksort的传入参数可以用二维指针做吗?
void quicksort(char **low,char **high);
char** split(char **low,char **high);
可以