Pagini recente » Cod sursa (job #3280115) | Cod sursa (job #3290432) | Cod sursa (job #803357) | Cod sursa (job #3268748) | Cod sursa (job #3285042)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[100000],index=0;
void merger(int start, int m, int end){
int i=start,j=m+1,k=0;
int temp[end-start+1];
while(i<=m && j<=end){
if (v[i]<v[j]){
temp[k++]=v[i++];
}
else{
temp[k++]=v[j++];
}
}
while(i<=m){
temp[k++]=v[i++];
}
while(j<=end){
temp[k++]=v[j++];
}
for (int i=start;i<=end;i++){
v[i]=temp[i-start];
}
}
void rec_sort(int start, int end){
if (start>=end){
return;
}
int m=(start+end)/2;
rec_sort(start,m);
rec_sort(m+1,end);
merger(start,m,end);
}
int main(){
int l,t;
fin>>l;
while(fin>>t){
v[index++]=t;
}
rec_sort(0,l-1);
for (int i=0;i<l;i++){
fout<<v[i]<<" ";
}
}