Pagini recente » Cod sursa (job #2209354) | Cod sursa (job #1835534) | Cod sursa (job #1160413) | Cod sursa (job #1713685) | Cod sursa (job #2277017)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, i, v[500002], a[500002], b[500002];
void sortare(int s, int f){
if(s != f){
int mid = (s+f)/2;
sortare(s, mid);
sortare(mid+1, f);
int i, j;
for(i = 1;i<=mid-s+1;i++)
a[i] = v[i+s-1];
for(j = 1;j<=f-mid;j++)
b[j] = v[j+mid];
i = j = 1;
int k = s;
while(i <= mid-s+1 && j <= f-mid){
if(a[i] < b[j])
v[k++] = a[i], i++;
else
v[k++] = b[j], j++;
}
for(;i<=mid-s+1;i++)
v[k++] = a[i];
for(;j<=f-mid;j++)
v[k++] = b[j];
}
}
int main(){
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
sortare(1, n);
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}