Pagini recente » Cod sursa (job #3292985) | Cod sursa (job #3138073) | Monitorul de evaluare | Cod sursa (job #2653382) | Cod sursa (job #2652778)
#include <fstream>
#include <vector>
int partition(std::vector<int>& v, int left, int right)
{
int& pivot = v[right];
int i = left - 1;
for(int j = left; j <= right - 1; ++j)
{
if(v[j] < pivot)
{
++i;
std::swap(v[i], v[j]);
}
}
std::swap(v[i + 1], pivot);
return i + 1;
}
void quickSort(std::vector<int>& v, int left, int right)
{
if(left < right)
{
int i = partition(v, left, right);
quickSort(v, left, i - 1);
quickSort(v, i + 1, right);
}
}
int main()
{
std::ifstream in("algsort.in");
int n;
std::vector<int> v;
in >> n;
v.resize(n);
for(int i = 0; i < n; ++i)
{
in >> v[i];
}
quickSort(v, 0, n - 1);
std::ofstream out("algsort.out");
for(int i = 0; i < n; ++i)
{
out << v[i] << ' ';
}
return 0;
}