行ごとに 1 回出力します
非常に明確です。コードは次のとおりです
#include <iostream>
using namespace std;
/*
*/
int len;
void quicksort(int* arr, int left, int right)
{
int copyright = right;
int copyleft = left;
int pivot = arr[left];
int key = left;
while (left <= right)
{
if (key == left)
{
while (arr[right] >=pivot&&right>key)
{
right--;
}
arr[key] = arr[right];
key = right;
left++;
}
else if (key == right)
{
while (arr[left] <=pivot&&left<key)
{
left++;
}
arr[key] = arr[left];
key = left;
right--;
}
}
arr[key] = pivot;
for (int j = 0; j <len-1; j++)
{
cout << arr[j] << " ";
}
cout << arr[len-1] << endl;
if (key-copyleft > 1)
{
quicksort(arr, copyleft, key - 1);
}
if (copyright - key > 1)
{
quicksort(arr, key+1, copyright);
}
}
int main()
{
cin >> len;
int* arr = new int[len];
for (int i = 0; i < len; i++)
{
cin >> arr[i];
}
quicksort(arr, 0, len - 1);
return 0;
}