Programa que ordena una lista de numeros

Ir abajo

Programa que ordena una lista de numeros

Mensaje por santiago padilla el Lun Dic 02, 2013 8:57 pm

Les déjo este programa en c., en el cual he estado trabajando. Muy sencillo que ordena una serie de números de menor a mayor. Me gusta porque introduce el uso de un algoritmo de ordenamiento que aún no hemos visto. El ordenamiento de burbuja.


La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

int main(){
/* Programa que ordena de menor a mayor una lista de numeros */

//int num[8]={1,1,1,2,3,2,2,2};
int num[8];
int i,j; // variables de incremento
int desor[8]; // lista desordenada
int max; // variable maximo

// asignacion de variables
printf("Introducir numeros desordenados , y el programa\n");
printf("los ordemanara de menor a mayor\n\n");
printf("________________________________________________________________________________\n\n");

for(i=0;i<8;i++){
printf(" [%i]: ",i+1);
num[i]=getch()-48;
while((num[i]>9)||(num[i]<0)){num[i]=getch()-48;}
putch(num[i]+48);
desor[i]=num[i];
}

// cuerpo
for(j=0;j<65;j++){ // El valor de fin de ciclo sería n^2 , siendo n la cantidad de elementos a comparar
for(i=0;i<8;i++){
if (num[i]>num[i+1]) {
max=num[i];
num[i]=num[i+1];
num[i+1]=max;
}
}
}

// Salida
printf("\n\nLa lista desordenada es: ");
for(i=0;i<8;i++){
printf(" %i",desor[i]);
}

printf("\n\nLa lista ordenada es: ");
for(i=0;i<8;i++){
printf(" %i",num[i]);
}



getch();
return 0;
}


santiago padilla

Mensajes : 5
Fecha de inscripción : 28/11/2013

Ver perfil de usuario

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.