Pagini recente » Cod sursa (job #3137705) | Cod sursa (job #237773) | Cod sursa (job #1318232) | Cod sursa (job #3183566) | Cod sursa (job #2273589)
#include<fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
int v[500002];
int part(int st, int dr){
int i = st - 1, j = dr + 1, p = v[(st+dr)/2];
while(1)
{
do
{
++i;
} while(v[i] < p);
do
{
--j;
} while(p < v[j]);
if(i < j)
swap(v[i], v[j]);
else
return j;
}
}
void quicksort(int st, int dr)
{
if(dr == st)
return;
int q = part(st, dr);
quicksort(st, q);
quicksort(q+1, dr);
}
int main()
{
srand(time(NULL));
int n, i;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i = 1; i <=n ; i++)
f>>v[i];
quicksort(1, n);
for(i = 1; i <= n; i++)
g<<v[i]<<" ";
}