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

Ordenamiento Burbuja

Estas en el tema de Ordenamiento Burbuja en el foro de C/C++ en Foros del Web. Hola , buscando el algoritmo de ordenamiento burbuja(bubblesort) encontre estos codigos en C, porque mi interesa solo en C: #include <stdio.h> #include <stdlib.h> #define TAM ...
  #1 (permalink)  
Antiguo 22/09/2012, 10:09
 
Fecha de Ingreso: enero-2007
Mensajes: 20
Antigüedad: 17 años, 10 meses
Puntos: 0
Ordenamiento Burbuja

Hola , buscando el algoritmo de ordenamiento burbuja(bubblesort) encontre estos codigos en C, porque mi interesa solo en C:

#include <stdio.h>
#include <stdlib.h>
#define TAM 5
*
int main(){
* * * * *int v[TAM];
* * * * *int i;
* * * * *int j;
* * * * *int aux;
*
* * * * *for(i=0; i<TAM; i++){
* * * * * * printf("Numero: ");
* * * * * * scanf("%d", &v[i]);
* * * * *}
* * * * *for(i=0; i<(TAM-1); i++)
* * * * * * for(j=i+1; j<TAM; j++)
* * * * * * * *if(v[j]<v[i]){
* * * * * * * * *aux=v[j];
* * * * * * * * *v[j]=v[i];
* * * * * * * * *v[i]=aux;
* * * * * * * *}
* * * * *for(i=0; i<TAM; i++)
* * * * * * *printf("%d\n", v[i]);
}



Es este el algoritmo correcto? o le falta algo? es la forma mas reducida?
Gracias.
  #2 (permalink)  
Antiguo 22/09/2012, 17:51
Avatar de Doommarine_Maxi  
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 9 meses
Puntos: 8
Respuesta: Ordenamiento Burbuja

Puedes reducirlo aun mas, por ejemplo haciendo solo un bucle.


Código C++:
Ver original
  1. for (int i=0; i < TAM; i++)
  2. {
  3.       if (i < 1)
  4.             continue;
  5.       if (v[i] < v[i-1])
  6.       {
  7.             aux = v[i];
  8.             v[i] = v[i-1];
  9.             v[i-1] = aux;
  10.             i = 0;
  11.       }
  12. }
  #3 (permalink)  
Antiguo 24/09/2012, 15:05
 
Fecha de Ingreso: enero-2007
Mensajes: 20
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Ordenamiento Burbuja

Cita:
Iniciado por Doommarine_Maxi Ver Mensaje
Puedes reducirlo aun mas, por ejemplo haciendo solo un bucle.


Código C++:
Ver original
  1. for (int i=0; i < TAM; i++)
  2. {
  3.       if (i < 1)
  4.             continue;
  5.       if (v[i] < v[i-1])
  6.       {
  7.             aux = v[i];
  8.             v[i] = v[i-1];
  9.             v[i-1] = aux;
  10.             i = 0;
  11.       }
  12. }


Muchas gracias pero como era escrito lo queria solo en "C".
  #4 (permalink)  
Antiguo 24/09/2012, 17:53
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 10 meses
Puntos: 94
Respuesta: Ordenamiento Burbuja

El codigo q te pasaron esta en C, solo que lo postio en la Highlight para C++


Saludos
  #5 (permalink)  
Antiguo 26/09/2012, 21:44
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 4 meses
Puntos: 22
Respuesta: Ordenamiento Burbuja

Hola.

Para que sea totalmente funcional en C, habría que hacer un pequeño cambio. En C++ es correcto declarar la variable de control dentro de la estructura for pero en C no.

Tendría que ser:
Código C:
Ver original
  1. int i;
  2.   for (i=0; i < TAM; i++)
  3.   ...

Saludos.
  #6 (permalink)  
Antiguo 27/09/2012, 08:34
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 10 meses
Puntos: 46
Respuesta: Ordenamiento Burbuja

Bueno en realidad si es correcto en C segun el standard C99 si no recuerdo mal, lo que pasa que hay que implementarlo manualmente al compilar.



Saludos
  #7 (permalink)  
Antiguo 27/09/2012, 20:02
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 4 meses
Puntos: 22
Respuesta: Ordenamiento Burbuja

Hola L3m0n.

Si es correcto, pero según entiendo, el standard C99 no es soportado por todos los compiladores (http://en.wikipedia.org/wiki/C99), en cambio con el formato C90 correrá sin problemas en cualquiera de ellos

Saludos.

Etiquetas: burbuja, int, ordenamiento
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 12:18.