domingo, 20 de enero de 2008

Método de Ordenación Burbuja en Lenguaje C

void cburbuja(int vec[],int n,long int *ncomp,long int *nmov,float *tiempo)
{
float tempini= clock();
float tempfinal;
int alta=2;
int baja=n;
int aux,k,j;
*ncomp=0;
*nmov=0;
while(alta<=baja){
k=baja;
for(j=baja;j>=alta-1;j--){
(*ncomp)++;
if(vec[j-1]>vec[j]){
aux=vec[j];
vec[j]=vec[j-1];
vec[j-1]=aux;
*nmov=*nmov+2;
k=j;
}
}
alta=k+1;
if(alta<=baja){
k=alta;
for(j=alta-1;j<=baja;j++){
(*ncomp)++;
if(vec[j-1]>vec[j]){
aux=vec[j];
vec[j]=vec[j-1];
vec[j-1]=aux;
*nmov=*nmov+2;
k=j;
}
}
baja=k-1;
}
}
tempfinal= clock();
*tiempo=((float)(tempfinal-tempini)/(float)(CLK_TCK));
}