Cod sursa(job #2897348)

Utilizator iulitaalpetriIulita Alpetri iulitaalpetri Data 3 mai 2022 15:12:54
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.2 kb
#include <iostream>
#include <fstream>
using namespace std;
// ex 1
int N, v[500000], aux[500000];
void intercl(int st, int dr, int m){
    int it_1= st;
    int it_2= m+ 1;
    int nr=0;
    while(it_1<= m && it_2<= dr ){
        if(v[it_1]< v[it_2] ){
            aux[nr]= v[it_1];
            nr++;
             it_1++;
        }
        else {
            aux[nr]= v[it_2];
            it_2++;
            nr++;
        }
    }
    for (int i= it_1; i<=m; i++){
        aux[nr]= v[i];
        nr++;
    }
    for (int i= it_2; i<= dr; i++){
        aux[nr]= v[i];
        nr ++;

    }
    for(int i= st; i<= dr ;i++ ){
        v[i]= aux[i- st];

    }

};

void merge_sort(int st, int dr){
    int mij;
    if(st== dr) return ;
    mij=(st+ dr)/ 2;
    merge_sort(st, mij);
    merge_sort(mij+1,  dr);
    intercl(st, dr, mij);

}
int main() {
    ifstream f("algsort.in");
    ofstream g("algsort.out");

    f>>N;
    for (int i =0; i< N; i++){
        f>>v[i];

    }
    merge_sort(0, N- 1);
    for (int i=0; i<N;i++){
        g<<v[i]<<" ";
    }
    f.close();
    g.close();




}

//int N, A, B, C;
//int main(){
//    ifstream f("radixsort.in");
//    ofstream g("radixsort.out");
//    f>> N>> A>>B>>C;




//}