Pagini recente » Cod sursa (job #2841065) | Cod sursa (job #2831867) | Cod sursa (job #2856660) | Cod sursa (job #2062671) | Cod sursa (job #771931)
Cod sursa(job #771931)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, x[500002], i;
void interclasare(int p, int u){
int m, i, j, k, y[500002];
k=0;
m=(p+u)/2;
i=p;
j=m+1;
while(i<=m && j<=u)
{
if(x[i]<x[j])
{
k++;
y[k]=x[i];
i++;
}
else
{
k++;
y[k]=x[j];
j++;
}
}
while(i<=m)
{
k++;
y[k]=x[i];
i++;
}
while(j<=u)
{
k++;
y[k]=x[j];
j++;
}
k=0;
for(i=p; i<=u; i++)
{
k++;
x[i]=y[k];
}
}
void imparte(int p, int u){
int m;
if(p<u)
{
m=(p+u)/2;
imparte(m+1, u);
imparte(p, m);
interclasare(p, u);
}
}
int main(){
f>>n;
for(i=1; i<=n; i++)
f>>x[i];
f.close();
imparte(1, n);
for(i=1; i<=n; i++)
g<<x[i]<<' ';
g.close();
return 0;
}