Pagini recente » Cod sursa (job #2795776) | Cod sursa (job #3133056)
#include <iostream>
#include <fstream>
using namespace std;
int n, vec[500000];
ifstream in("algsort.in");
ofstream out("algsort.out");
void mergeSort(int vec[], int p, int u){
if(p == u){
return;
}
int mij = (u + p) / 2;
mergeSort(vec, p, mij);
mergeSort(vec, mij + 1, u);
int i = p, j = mij + 1, aux[u - p + 1], k = 0;
while((i <= mij) && (j <=u)){
if(vec[i] < vec[j]){
aux[k] = vec[i];
i++;
}else{
aux[k] = vec[j];
j++;
}
k++;
}
while(i <= mij){
aux[k] = vec[i];
k++;
i++;
}
while(j <= u){
aux[k] = vec[j];
k++;
j++;
}
for(int z = p; z <= u; z++){
vec[z] = aux[z - p];
}
}
int main(){
in>>n;
for(int i = 0; i < n; i++){
in>>vec[i];
}
mergeSort(vec, 0, n - 1);
for(int i = 0; i < n; i++){
out<<vec[i]<<' ';
}
in.close();
}