Pagini recente » Cod sursa (job #2531276) | Cod sursa (job #1555134) | Cod sursa (job #2943484) | Cod sursa (job #1863900) | Cod sursa (job #3128880)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void b(long long A[],int stanga,int dreapta,int l,long long B[])
{
int i=stanga , j=dreapta;
for (int k =stanga;k<l;k++)
{
if (i<dreapta && (j >=l || A[i]<=A[j]))
{
B[k]=A[i];
i=i+1;
}
else
{
B[k]=A[j];
j=j+1;
}
}
}
void copie(long long B[],long long A[],int n)
{
for (int i=0;i<n;i++)
A[i]=B[i];
}
void a(long long A[],long long B[],int n)
{
for (int i= 1; i< n;i=2*i)
{
for (int j = 0; j < n; j = j + 2 *i)
{
b(A, j, min(j+i, n), min(j+2*i, n), B);
}
copie(B, A, n);
}
}
int main()
{
int n;
long long V[100],v[100];
fin>>n;
for(int i=0;i<n;i++)
{
fin>>V[i];
v[i]=V[i];
}
a(V,v,n);
for(int i=0;i<n;i++)
{
fout<<V[i]<<' ';
}
}