elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 22:31  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Método Burbuja
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Método Burbuja  (Leído 1,650 veces)
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Método Burbuja
« en: 1 Mayo 2011, 19:18 »

Hola, estoy tratando de aplicar el método Burbuja en C, pero no lo consigo. Estoy seguro que debe ser algún détalle que me falta.

Código:
#include<stdio.h>
#include<stdlib.h>

int burbuja(int a[], int n);

int main()
{
    int n;
    printf("Ingrese el tamaño del arreglo: \n");
    scanf("%d",&n);
   
    int a[n];
   
   
    printf("Ingrese los elementos al arreglo: \n");
    for(int i=0;i<n;i++)
    {
         scanf("%d",&a[i]);
    }
   
    for(int i=0;i<n;i++)
    {
         a[i] = burbuja(a,n);
         printf("%d\n",a[i]);
    }
   
    system("pause");
    return 0;
}
     
     int burbuja(int a[],int n)
     {
         int aux=0;
         
         for(int i=0;i<n;i++)
         {
            if(a[i]<a[i-1])
            {
               aux = a[i];
               a[i] = a[i-1];
               a[i-1] = aux;
            } 
            return a[i];
         }
         
      }


En línea
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Método Burbuja
« Respuesta #1 en: 1 Mayo 2011, 20:23 »

Tu implementación falla en, que para obtener el resultado correcto, no deberías visualizar el resultado hasta el final.


Código
  for(int i=0;i<n;i++)
   {
        burbuja(a,n);
   }
for(int i=0;i<n;i++)
   {
     printf("%d\n",a[i]);
   }
 


Luego, ya visualizas el resultado.

Añado algo, visto así, queda extraño. Lo "ideal" sería tener en la función burbuja todo el cálculo cuadrático de la ordenación (los dos bucles) y no lanzar n veces dicha función,que en tu caso realiza ordenaciones parciales, sino únicamente lanzarla una vez con el código completo.

El resultado es el mismo, si, la claridad a la hora de leerlo, no. Y si estás aprendiendo, te interesa mucho lo segundo.


En línea

Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Método Burbuja
« Respuesta #2 en: 1 Mayo 2011, 20:55 »

Voy a probar las dos formas, haré todo lo posible para que resulte.

Gracias
En línea
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Método Burbuja
« Respuesta #3 en: 1 Mayo 2011, 21:41 »

Listo, me quedó así y resultó a la perfección. Se suponía que antes tenía el método como int, y no entendía porque no funcionaba el método de la forma que lo escribiste. Y es que tenía que ser vacío para utilizarlo de esa forma.

Código:
#include<stdio.h>
#include<stdlib.h>

void burbuja(int a[], int n);

int main()
{
    int n;
    printf("Ingrese el tamaño del arreglo: \n");
    scanf("%d",&n);
   
    int a[n];
   
   
    printf("Ingrese los elementos al arreglo: \n");
    for(int i=0;i<n;i++)
    {
         scanf("%d",&a[i]);
    }
   
    burbuja(a,n);
   
    for(int i=0;i<n;i++)
    {
       printf("%d\n",a[i]);
    }
   
    system("pause");
    return 0;
}
     
     void burbuja(int a[],int n)
     {
         int aux=0, i, j;
         
         for(i=0;i<n-1;i++)
         {
            for(j=i+1;j<n;j++)
            {             
               if(a[i]>a[j])
               {
                 aux = a[i];
                 a[i] = a[j];
                 a[j] = aux;
               } 
            }
         }
     }
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ordenar datos de un array con metodo Burbuja
Programación C/C++
stuartmsc 3 7,420 Último mensaje 25 Marzo 2009, 22:33
por stuartmsc
Metodo de burbuja C++ URGENTE
Programación C/C++
Sakki 5 2,740 Último mensaje 17 Marzo 2010, 20:22
por Littlehorse
Metodo de burbuja
Programación C/C++
jenniferflores 2 1,444 Último mensaje 29 Marzo 2010, 13:27
por Castiblanco
Metodo de burbuja? leer frases en areglos?
Programación C/C++
-Digital- 4 965 Último mensaje 9 Abril 2010, 22:32
por Aberroncho
Metodo Burbuja en ASM
ASM
XxArCaNgElxX 7 2,990 Último mensaje 22 Julio 2011, 21:35
por Иōҳ
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines