Foros del Web » Programación para mayores de 30 ;) » C/C++ »

es poco eficiente este ordenamiento

Estas en el tema de es poco eficiente este ordenamiento en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/02/2011, 10:53
 
Fecha de Ingreso: junio-2010
Mensajes: 46
Antigüedad: 14 años, 6 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
  #2 (permalink)  
Antiguo 15/02/2011, 11:10
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: es poco eficiente este ordenamiento

Es casi el mismo programa. La unica diferencia es que el tuyo a medida que va ordenando sigue recorriendo la parte que ya ordenaste, que basicamente al estar ordenada no hace falta recorrerla.
  #3 (permalink)  
Antiguo 15/02/2011, 11:42
 
Fecha de Ingreso: junio-2010
Mensajes: 46
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: es poco eficiente este ordenamiento

ahh ok.. es que como el enunciado dice que van subiendo como burbujas y se van comparando pares yo pense que era asi.. osea compararlos de par en par pero el verdadero algoritmo de burbuja va comparando una posicion (digamos la 0) con cada posicion siguiente (posicion+1).. yo pensaba que habia que compararlos digamos la posicion 0 con la 1, luego la 1 con la 2 y asi en lo sucesivo.. osea de par en par..

bueno muchas gracias sam90 ya veo la deficiencia en comparacion con el algoritmo que esta en wikipedia.

Etiquetas: bubble, burbuja, ordenamiento, sort
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:34.