Pagini recente » Cod sursa (job #1537212) | Cod sursa (job #530695) | Cod sursa (job #523405) | Cod sursa (job #3125410) | Cod sursa (job #2942978)
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
#define Nmax 500000
int v[Nmax];
void quickSort(int begin, int end)
{
int pivot = v[begin + rand() % (end - begin)];
int b = begin, e = end;
while(v[b] < pivot)
{
b++;
}
while(v[e] > pivot)
{
e--;
}
while(b < e)
{
swap(v[b], v[e]);
do
{
b++;
} while(v[b] < pivot);
do
{
e--;
} while(v[e] > pivot);
}
if(begin < e)
{
quickSort(begin, e);
}
if(e + 1 < end)
{
quickSort(e + 1, end);
}
}
int main()
{
int n, i;
fin >> n;
for(i = 0; i < n; i++)
{
fin >> v[i];
}
quickSort(0, n - 1);
for(i = 0; i < n; i++)
{
fout << v[i] << " ";
}
return 0;
}