Cod sursa(job #1747667)

Utilizator Kln1000Ciobanu Bogdan Kln1000 Data 25 august 2016 12:39:46
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream f ("algsort.in");
ofstream t ("algsort.out");

vector <int> v,v2;
int n;

void mergesort(int low,int high){
if (high>low){
    int mid=(low+high)/2;
    mergesort(low,mid);
    mergesort(mid+1,high);
    int i,k,j;
    i = k =low;
    j = mid + 1;
    while (i <= mid or j <= high)
        if (j > high or (i <= mid and  v[i] < v[j]))
            v2[k ++] = v[i ++];
            else v2[k ++] = v[j ++];

    for (k = low; k <= high; ++k)
            v[k] = v2[k];
}
}

void citire(){
f>>n;
v.resize(n);
v2.resize(n);
for (int i=0;i<n;++i)
f>>v[i];
}

inline void afisare(){
for (int i=0;i<n;++i)
t<<v[i]<<" ";
}

int main()
{
citire();
mergesort(0,n-1);
afisare();
return 0;
}