Mai intai trebuie sa te autentifici.
Cod sursa(job #1691472)
Utilizator | Data | 18 aprilie 2016 14:57:30 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.73 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algosort.in");
ofstream fout("algosort.out");
int n, a[500005], b[500005];
void Read(){
fin >> n;
for(int i = 1 ; i <= n ; ++ i)
fin >> a[i];
}
void mergeSort(int l, int r){
if(l == r)
return ;
int m = (l+r)/2;
mergeSort(l,m);
mergeSort(m+1,r);
for(int i = l, j = m+1, k = l; i <= m || j <= r; ){
if (j > r || (i <= m && a[i] < a[j])){
b[k++] = a[i++];
}
else
b[k++] = a[j++];
}
for(int i = l; i <= r; ++ i)
a[i] = b[i];
}
int main()
{
Read();
mergeSort(1,n);
for(int i = 1 ; i <= n ;++ i)
fout << a[i] << " ";
}