Cod sursa(job #1181330)
| Utilizator | Data | 2 mai 2014 15:24:36 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
#define dim 500001
using namespace std;
int B[dim],A[dim],n;
void merge_sort(int l,int r){
if(l==r) return;
int m=(l+r)/2,i,j,k;
merge_sort(l,m);
merge_sort(m+1,r);
for(i=l,j=m+1,k=l;i<=m || j<=r;){
if((A[i]<=A[j] && i<=m) || j>r)
B[k++]=A[i++];
else
B[k++]=A[j++];
}
for(k=l;k<=r;k++) A[k]=B[k];
}
int main(){
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(int i=1;i<=n;i++)
f >> A[i];
merge_sort(1,n);
for(int i=1;i<=n;i++)
g << A[i] <<" ";
}
