我试图让快速排序工作以按字母顺序对 7000 个字符串的数组进行排序,但我得到的只是一个空白输出文件。它适用于我的冒泡排序方法,但不适用于此方法。我确定这是一个明显的错误,但我无法确定它。
void ArrayStorage::quicksort(int first, int last, string list[])
{
int middle, p, index;
string temp, partition;
if (first < last)
{
middle = int(first + last)/2;
temp = list[middle];
list[middle] = list[first];
list[first] = temp;
partition = list[first];
p = first;
for (index = first + 1; index <= last; index++)
{
if(list[index] < partition)
{
p = p + 1;
temp = list[index];
list[index] = list[p];
list[p] = temp;
}
}
temp = list[first];
list[first] = list[p];
list[p] = temp;
quicksort(first, p - 1, list);
quicksort(p + 1, last, list);
}
}
我这样调用方法:
quicksort(0,GetSize() -1,namesArray);