Pagini recente » Cod sursa (job #1829054) | Cod sursa (job #189427) | Istoria paginii runda/ty | Cod sursa (job #1226539) | Cod sursa (job #2645042)
#include <iostream>
#include <fstream>
using namespace std;
void interclasare(int x[], int y[], int v[], int s, int e){
int m=(s+e)/2;
int i=s;
int j=m+1;
int k=s;
while(i<=m && j<=e){
if(x[i]<y[j]){
v[k]=x[i];
i++;
k++;
}
else{
v[k]=y[j];
j++;
k++;
}
}
while(i<=m){
v[k]=x[i];
i++;
k++;
}
while(j<=e){
v[k]=y[j];
j++;
k++;
}
}
void mergeSort(int v[],int s, int e){
if(s>=e)
return;
int m=(s+e)/2;
int x[100],y[100];
for(int i=0;i<=m;i++)
x[i]=v[i];
for(int i=m+1;i<=e;i++)
y[i]=v[i];
mergeSort(x,s,m);
mergeSort(y,m+1,e);
interclasare(x, y, v, s, e);
}
int main() {
int v[10000],n;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
fin>>n;
for(long i=0;i<=n-1;i++)
fin>>v[i];
mergeSort(v,0,n-1);
for(long i=0;i<=n-1;i++)
fout<<v[i]<<" ";
fin.close();
fout.close();
return 0;
}