Pagini recente » Cod sursa (job #259353) | Cod sursa (job #1963096) | Cod sursa (job #2289186) | Cod sursa (job #2746111) | Cod sursa (job #649975)
Cod sursa(job #649975)
#include<fstream>
#define N 500000
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int i, n, v[N];
void swap(int &a, int &b)
{int aux;
aux=a;
a=b;
b=aux;
}
void quicksort(int v[], int start, int end)
{if(start==end)
return;
int i=start;
int j=end;
int pivot=v[i+rand()%(j-i)];
while(i<=j)
{while(v[i]<pivot)
i++;
while(v[j]>pivot)
j--;
if(i<=j)
{swap(v[i], v[j]);
i++;
j--;
}
}
if(start<j)
quicksort(v, start, j);
if(i<end)
quicksort(v, i, end);
}
int main()
{f>>n;
for(i=0; i<n; i++)
f>>v[i];
srand(time(NULL));
quicksort(v, 0, n-1);
for(i=0; i<n; i++)
g<<v[i]<<" ";
f.close();
g.close();
}