elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


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

Desconectado Desconectado

Mensajes: 72


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

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 pm »

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


Código
  1.  for(int i=0;i<n;i++)
  2.    {
  3.         burbuja(a,n);
  4.    }
  5. for(int i=0;i<n;i++)
  6.    {
  7.      printf("%d\n",a[i]);
  8.    }
  9.  


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: 72


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

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

Gracias
En línea

Lain0x

Desconectado Desconectado

Mensajes: 72


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

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
metodo de ordenamiento burbuja en graficos en lenguaje c#
.NET (C#, VB.NET, ASP)
Ylen 4 14,289 Último mensaje 8 Abril 2009, 07:30 am
por Ylen
Metodo Burbuja en ASM
ASM
XxArCaNgElxX 7 13,614 Último mensaje 22 Julio 2011, 21:35 pm
por Иōҳ
Ordenación: método de la burbuja
Programación General
mvk 5 3,079 Último mensaje 13 Noviembre 2012, 00:08 am
por mvk
Esta vez no estamos ante una burbuja tecnológica, EEUU es una burbuja « 1 2 3 »
Foro Libre
dimitrix 23 9,278 Último mensaje 7 Marzo 2015, 17:04 pm
por dimitrix
Como se podría ordenar por el método de la burbuja
Programación C/C++
TheMainStayz 3 2,738 Último mensaje 2 Octubre 2015, 19:24 pm
por TheMainStayz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines