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);