Enviado em 28/03/2009 - 21:36h
Por favor estou implementando o algoritmo Merge Sort e estou precisando de ajuda pois, está dando um erro que não consigo corrigir. Segue o código abaixo.
Grato.
void Ordena::merge(int *VA, int PI, int PF)
{
int I,J,K;
int M=(PF+PI)/2;
int VB[PF-PI+1];
for(I=PI, J=M+1, K=0; I<=M&&J<=PF; K++)
{
if(VA[I]<VA[J])
{
VB[K]=VA[I];
I++;
}
else
{
VB[K]=VA[J];
I++;
}
for(;I<=M; I++,K++)
{
VB[K]=VA[I];
}
for(;J<=PF; J++,K++)
{
VB[K]=VA[J];
}
for(I=PI, K=0; I<=PF; I++, K++)
{
VA[I]=VB[K];
}
}
}
void Ordena::mergeSort(int *V, int I, int F)
{
int M;
if(F>I)
{
M=(F+I)/2;
mergeSort(V,I,M);
mergeSort(V,M+1,F);
merge(V,I,F);
}
}
dá o seguinte erro: undefined reference to Ordena::mergeSort();
Grato.
void Ordena::merge(int *VA, int PI, int PF)
{
int I,J,K;
int M=(PF+PI)/2;
int VB[PF-PI+1];
for(I=PI, J=M+1, K=0; I<=M&&J<=PF; K++)
{
if(VA[I]<VA[J])
{
VB[K]=VA[I];
I++;
}
else
{
VB[K]=VA[J];
I++;
}
for(;I<=M; I++,K++)
{
VB[K]=VA[I];
}
for(;J<=PF; J++,K++)
{
VB[K]=VA[J];
}
for(I=PI, K=0; I<=PF; I++, K++)
{
VA[I]=VB[K];
}
}
}
void Ordena::mergeSort(int *V, int I, int F)
{
int M;
if(F>I)
{
M=(F+I)/2;
mergeSort(V,I,M);
mergeSort(V,M+1,F);
merge(V,I,F);
}
}
dá o seguinte erro: undefined reference to Ordena::mergeSort();