Pagini recente » Istoria paginii utilizator/cristiciotei | Cod sursa (job #951231) | Cod sursa (job #2034969) | Cod sursa (job #989862) | Cod sursa (job #1229069)
#include<ctime>
#define N 500100
#include<cstdlib>
#define FOR(a,b,c) for(int a=b;a<=c;++a)
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,t,v[N],s[N];
void smecherie(int st,int dr)
{
if(st==dr||st>dr)
return;
int mij=(st+dr)>>1;
smecherie(st,mij);
smecherie(mij+1,dr);
int p=st;
int q=mij+1;
int t=0;
while(p<=mij&&q<=dr)
s[++t]=v[p]<v[q]?v[p++]:v[q++];
for(;p<=mij;++p)
s[++t]=v[p];
for(;q<=dr;++q)
s[++t]=v[q];
FOR(i,st,dr)
v[i]=s[i-st+1];
}
int main ()
{
f>>n;
FOR(i,1,n)
f>>v[i];
smecherie(1,n);
FOR(i,1,n)
g<<v[i]<<" ";
return 0;
}