Pagini recente » Cod sursa (job #1952799) | Cod sursa (job #1436049) | Cod sursa (job #1820618) | Cod sursa (job #1729045) | Cod sursa (job #629935)
Cod sursa(job #629935)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int N=500001;
int n,v[N],aux[N];
void citire(){
int i;
in>>n;
for(i=1;i<=n;i++){
in>>v[i];
}
}
void Interclasare(int st,int dr){
int m=(st+dr)/2;
int i=st,j=m+1,k=st;
while(i<=m && j<=dr){
if(v[i]<v[j]){
aux[k++]=v[i++];
}
else{
aux[k++]=v[j++];
}
}
while(i<=m){
aux[k++]=v[i++];
}
while(j<=dr){
aux[k++]=v[j++];
}
for(i=st;i<=dr;i++){
v[i]=aux[i];
}
}
void MergeSort(int st,int dr){
if(st==dr)
return;
int m=(st+dr)/2;
MergeSort(st,m);
MergeSort(m+1,dr);
Interclasare(st,dr);
}
int main(){
int i;
citire();
MergeSort(1,n);
for(i=1;i<=n;i++){
out<<v[i]<<" ";
}
return 0;
}