Cod sursa(job #1029133)

Utilizator SieRRa95FMI Stratulat Madalin-Gabriel SieRRa95 Data 15 noiembrie 2013 00:41:32
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<iostream>
#include<conio.h>
#include<math.h>
#include<fstream>


using namespace std;

void merge(int a[],int p,int q,int r);
void mergesort(int a[],int p,int r){
    int q;
    if(p<r){
        q=(p+r)/2;
    mergesort(a,p,q);
    mergesort(a,q+1,r);
    merge(a,p,q,r);
    }
}
int b[50];
void merge(int a[],int p,int q,int r){
    int i,j,k;
    k=0;
    i=p;
    j=q+1;

    while(i<=q && j<=r){
        if(a[i]<a[j])
            b[k++]=a[i++];
        else
            b[k++]=a[j++];
    }
    while(i<=q)
        b[k++]=a[i++];
    while(j<=r)
        b[k++]=a[j++];
    for(i=r;i>=p;i--)
        a[i]=b[--k];
}

int main(){int n,a[50],i;

ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;

for(i=0;i<n;i++)
    f>>a[i];
    f.close();

mergesort(a,0,n);

for(i=0;i<n;i++)
    g<<"\t"<<a[i];

g.close();

return 0;}