Pagini recente » Cod sursa (job #1361903) | Cod sursa (job #2761757) | Cod sursa (job #1200778) | Cod sursa (job #57522) | Cod sursa (job #2906710)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500000];
void mergeSort(int st, int dr){
int m=(st+dr)/2;
if(st<dr){
mergeSort(st, m);
mergeSort(m+1, dr);
}
int i=st, j=m+1, k=0, t[dr-st+1];
while(i<=m && j<=dr) {
if (v[i] < v[j]) t[k++] = v[i++];
else t[k++] = v[j++];
}
while(i<=m) t[k++] = v[i++];
while(j<=dr) t[k++] = v[j++];
k=0;
for(i=st; i<=dr; i++)
v[i] = t[k++];
}
int main() {
int n;
fin>>n;
for(int i=0;i<n;i++) fin>>v[i];
mergeSort(0,n-1);
for(int i=0;i<n;i++) fout<<v[i]<<' ';
return 0;
}