Pagini recente » Cod sursa (job #1714843) | Cod sursa (job #21598) | Cod sursa (job #1724864) | Cod sursa (job #1460095) | Cod sursa (job #1369293)
#include<fstream>
#include<algorithm>
int lomuto_partition(int v[], int lower, int upper)
{
int x = v[upper];
int i = lower - 1;
for (int j = lower; j<=upper-1; ++j)
if (v[j] <= x)
{
++i;
std::swap(v[i], v[j]);
}
std::swap(v[i+1], v[upper]);
return i+1;
}
void qsort(int v[], int lower, int upper)
{
if(lower < upper)
{
int mid = lomuto_partition(v, lower, upper);
qsort(v, lower, mid-1);
qsort(v, mid+1, upper);
}
}
int main()
{
int i, n, v[500000];
std::ifstream f("algsort.in");
std::ofstream g("algsort.out");
f>>n;
for(i=0; i<n; i++)
f >> v[i];
qsort(v, 0, n-1);
for(i=0; i<n; i++)
g<< v[i] << " ";
f.close();
g.close();
return 0;
}