Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2011, 10:53
cabeto14
 
Fecha de Ingreso: junio-2010
Mensajes: 46
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta es poco eficiente este ordenamiento

hola.. estoy estudiando de un libro y ahi me ponen a hacer el ordenamiento de burbuja.. me dieron este enunciado:

Cita:
en el ordenamiento de burbuja, los valores mas pequeños van "subiendo como burbujas" gradualmente, hasta llegar a la parte superior del arreglo (es decir, hacia el primer elemento) como las burbujas de aire que se elevan en el agua, mientras que los valores mas grandes se hunden en el fondo. esta tecnica realiza varias pasadas a travez del arreglo. en cada pasada compara pares sucesivos de elementos. si un par se encuentra en orden ascendente (o los valores son identicos), el ordenmaineto de burbuja deja los valores como estan. si un par se encuentra en orden descendente, el ordenamiento de burbuja intercambias sus valores en el arreglo, escriba un programa que ordene un arreglo de 10 enteros mediante el uso del ordenamiento de burbuja.
y yo lo hice asi:

codigo C++
Código:
void ordenamientoBurbuja(int array[], const int tam)
{
    for (int a=0;a<tam;a++) // numero de repeticiones=al tamaño del arreglo
    {
        for (int i=0,j=1;j<tam;i++,j++) //compara de par en par a travez de todo el arreglo
        {
            if (array[j]<array[i]) //compara un par
            {
                int temp=array[i];
                array[i]=array[j]; //intercambio
                array[j]=temp;
            }
        }
    }
}
luego vi en wikipedia el algoritmo del ordenamiento de bubuja y es un poco diferente..
Código:
void ordenamientoBurbuja(int v[], int util_v) {
	 int temp, i, j;
 
	 for (i = 0; i < util_v -1 ; i++) {
	 	 for (j = i + 1; j < util_v ; j++) {
 	  	 	 if (v[i] > v[j]) {
		 	 	temp = v[i];
		 	 	v[i] = v[j];
		 	 	v[j] = temp;
		 }
		 }	 
	 }
}
mi pregunta es: mi programa es eficiente en comparacion con el "verdadero" ordenamiento de burbuja? lo hice mal?

gracias