Pagini recente » Cod sursa (job #568597) | Cod sursa (job #330264) | Cod sursa (job #1563625) | Cod sursa (job #2192059) | Cod sursa (job #1242165)
#include <fstream>
#include <time.h>
using namespace std;
int a[500000];
int partition(int i , int s)
{
int l = i - 1;
for (int j = i; j <= s;j++)
if (a[j] <= a[s])
{
l++;
int aux = a[j];
a[j] = a[l];
a[l] = aux;
}
return l;
}
void quicksort(int i, int s)
{
if (i < s)
{
int k = rand() % (s - i + 1) + i;
int q = i - 1;
for (int j = i; j <= s; j++)
if (a[j] <= a[k])
{
q++;
int aux = a[j];
a[j] = a[q];
a[q] = aux;
}
quicksort(i, q - 1);
quicksort(q + 1, s);
}
}
int main()
{
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
fin >> n;
for (int i = 0; i < n; i++)
{
fin >> a[i];
}
srand(6782);
quicksort(0, n-1);
for (int i = 0; i < n; i++)
{
fout << a[i] << ' ';
}
}