C/Visual C - problemas al implementar el algoritmo de QuickSort

 
Vista:

problemas al implementar el algoritmo de QuickSort

Publicado por Carmen (5 intervenciones) el 09/11/2003 18:29:35
Hola!!!
Tengo problemas al implementar el siguiente algoritmo Quicksort en ficheros, para simular archivos indexados:
/* Implementacion del algoritmo Quicksort para fichero de indices */
void QuickSort (FILE *fi, long inicio, long final)
{
long k;
if (inicio < final)
{
k = Division(fi,inicio,final);
QuickSort(fi,inicio,k);
QuickSort(fi,k+1,final);
}
}

long Division(FILE *fi, long inicio, long final)
{ long int pivote = LeeCampo(fi,inicio);
long izq = inicio-1;
long der = final+1;
while (izq < der)
{
do {
izq++;
} while ( LeeCampo(fi,izq) < pivote);
do {
der--;
} while ( LeeCampo(fi,der) > pivote);
if (izq < der) //intercambio
Intercambia(fi,izq,der);
}
return (der);
}

long int LeeCampo (FILE *fi, long n)
{ fseek (fi,n*sizeof(regmec),SEEK_SET);
fread (®mec,sizeof(regmec),1,fi);
buf = regmec.ced;
return(buf);
}

void Intercambia (FILE *fi, long izq, long der)
{
fseek (fi, izq*sizeof(regmec),SEEK_SET);
fread (®mec1,sizeof(regmec1),1,fi);
fseek (fi, der*sizeof(regmec),SEEK_SET);
fread (®mec2,sizeof(regmec2),1,fi);
fseek (fi, izq*sizeof(regmec),SEEK_SET);
fwrite (®mec2,sizeof(regmec2),1,fi);
fseek (fi, der*sizeof(regmec),SEEK_
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder