Pagini recente » Cod sursa (job #2243269) | Cod sursa (job #3185510) | Cod sursa (job #1614304) | Cod sursa (job #3289557) | Cod sursa (job #2546282)
#include <fstream>
#define dim 500010
using namespace std;
int a[dim];
int b[dim];
int i,n;
void interclaseaza(int s1,int n,int s2,int m) {
int i=s1;
int j=s2;
int u=0;
while (i<=n&&j<=m) {
if (a[i]<a[j]) {
b[++u]=a[i];
i++;
}
else {
b[++u]=a[j];
j++;
}
}
for (i=i;i<=n;i++) {
b[++u]=a[i];
}
for (j=j;j<=m;j++) {
b[++u]=a[j];
}
u=0;
for (i=s1;i<=m;i++) {
a[i]=b[++u];
}
}
void sorteaza (int st,int dr) {
if (st<dr) {
int mid=(st+dr)/2;
sorteaza(st,mid);
sorteaza(mid+1,dr);
interclaseaza(st,mid,mid+1,dr);
}
}
int main() {
ifstream fin("algsort.in");
ofstream fout("algsort.out");
fin>>n;
for (i=1;i<=n;i++) {
fin>>a[i];
}
sorteaza(1,n);
for (i=1;i<=n;i++) {
fout<<a[i]<<" ";
}
return 0;
}