#include<iostream>
#include<vector>
using namespace std;
int partsort(vector<int> &arr, int l, int r);
void quicksort(vector<int> &arr, int l, int r)
{
if (l < r){
int k = partsort(arr, l, r);
quicksort(arr, 0, k - 1);
quicksort(arr, k + 1, r);
}
}
int partsort(vector<int> &arr, int l, int r)
{
int i = l+1;
int j = r;
int temp = arr[l];
while (i <= j)
{
while (arr[i] < temp)
++i;
while (arr[j]>temp)
--j;
if (i < j)
swap(arr[i], arr[j]);
else
++i;
}
swap(arr[l], arr[j]);
return j;
}
int main()
{
int arr[] = { 2, 3, 7, 9, 6, 4, 5, 56, 42, 34, 324, 44 };
vector<int> v(arr, arr + 12);
quicksort(v, 0, 11);
for (auto e:v)
cout << e << " ";
system("pause");
return 0;
}
#include<iostream>
#include<vector>
using namespace std;
int partsort(vector<int> &arr, int l, int r);
void quicksort(vector<int> &arr, int l, int r)
{
if (l < r)
{
int k = partsort(arr,l,r);
quicksort(arr, l, k - 1);
quicksort(arr, k+1, r);
}
}
int partsort(vector<int> &arr, int l, int r)
{
int i = l + 1;
int j = r;
int temp = arr[l];
while (i < j)
{
while (arr[i] < temp)
++i;
while (arr[j]>temp)
--j;
if (i < j)
swap(arr[i], arr[j]);
else
++i;
}
swap(arr[l], arr[j]);
return j;
}
int main()
{
int *arr = new int[];
int n;
cin >> n;
for (int number = 0; number < n; ++number)
cin >> arr[number];
vector<int> v(arr, arr + n);
for (auto e : v)
cout << e << " ";
cout << endl;
quicksort(v, 0, n-1);
for (auto e : v)
cout << e << " ";
system("pause");
return 0;
}