Olá pessoal, sou o Filipe Névola, este blog foi muito ativo durante 2009 enquanto eu fazia universidade,
hoje em dia estou ativo no Twitter @FilipeNevola e voltando a escrever posts agora no meu perfil do Medium (29/05/2016).

[ 21/05/2009 ] 0

Merge-Sort em C / C++

Código Fonte em C/C++:


//Autor: Filipe Areias Névola
//Ano: 2008
//Programa: Merge-Sort
//Licensa: Você pode usar e alterar, mas deve manter o Autor
//Principal
void mergeSort(int t){
    int p=0,r=t-1;
    mergeS(p,r);
}
//Divisão
void mergeS(int p,int r){
    int q;
    if(p<r){
        q=(p+r)/2;
        mergeS(p,q);
        mergeS(q+1,r);
        merge(p,q,r);
    }
}
//Intercalação
void merge(int p,int q,int r){
    int i=p,j=q+1,k=0;
    while(i<=q && j<=r){
        if(v[i]<v[j])
            B[k]=v[i++];
        else
            B[k]=v[j++];
        k++;
    }
    while(i<=q){
        B[k]=v[i];
        i++,k++;
    }
    while(j<=r){
        B[k]=v[j];
        j++,k++;
    }
    for(i=p,k=0;i<=r;i++,k++)
        v[i]=B[k];

}
Não deixe de conferir a explicação teórica desse algoritmo!

Novo Comentário