[ 21/05/2009 ] 0 TwitThis

Merge-Sort em C / C++

Código Fonte em C/C++ (No código '<' tire as aspas simples):

//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