Pagini recente » Cod sursa (job #327200) | Cod sursa (job #2490456) | Cod sursa (job #502835) | Cod sursa (job #788695) | Cod sursa (job #1308187)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
long long v[500001];
int n;
void interschimba(int a,int b)
{
int c=a;
a=b;
a=c;
}
void sortare(int st, int dr)
{
if(st<=dr)
{
int mij=(st+dr)/2;
int i = st;
int j = dr;
while(i <= j)
{
while(v[j] > v[mij] && j >= st)
j--;
while(v[i] < v[mij] && i <= dr)
i++;
if(i <= j)
{
interschimba(v[i], v[j]);
i++;
j--;
}
}
if(j>st)
sortare(st, j);
if(dr>i)
sortare(i, dr);
}
}
int main()
{
in>>n;
for(int i=1; i<=n; i++)
in>>v[i];
sortare(1,n);
for(int i=1; i<=n; i++)
out<<v[i]<<" ";
return 0;
}