Con la tecnología de Blogger.

Ordenar un conjunto de números

Ordenar un conjunto de números

En el proceso de ordenación se ha de intercambiar los valores que guardan elementos del array


Veamos como sería el código correspondiente al intercambio de los valores que guardan dos variables x e y.

Para intercambiar el contenido de dos recipientes x e y sin que se mezclen, precisamos de un recipiente auxiliar aux vacío. Se vuelca el contenido del recipiente x en el recipiente aux, el recipiente y se vuelca en x, y por último, el recipiente aux se vuelca en y. Al final del proceso, el recipiente aux vuelve a estar vacío como al principio.

En la figura se esquematiza este proceso.

aux=x;

x=y;

y=aux;

Para ordenar una lista de números emplearemos el método de la burbuja, un método tan simple como poco eficaz. Se compara el primer elemento, índice 0, con todos los demás elementos de la lista, si el primer elemento es mayor que el elemento j, se intercambian sus valores, siguiendo el procedimiento explicado en la figura anterior. Se continua este procedimiento con todos los elementos del array menos el último. La figura explica de forma gráfica este procedimiento.

void ordenar(){

int aux;

for(int i=0; i<n-1; i++){

for(int j=i+1; j<n; j++){

if(x[i]>x[j]){

aux=x[j];

x[j]=x[i];

x[i]=aux;

}

}

}

}

Caben ahora algunas mejoras en el programa, así la función ordenar la podemos utilizar para hallar el valor mayor, y el valor menor. Si tenemos una lista ordenada en orden ascendente, el último elemento de la lista será el valor mayor y el primero, el valor menor. De este modo, podemos usar una función en otra funciones, lo que resulta en un ahorro de código, y en un aumento de la legibilidad del programa.

int valorMayor(){

ordenar();

return x[n-1];

}

int valorMenor(){

ordenar();

return x[0];

}
Share on Google Plus

Sobre Rafa

Soy un apasionado de las nuevas técnologias, Internet, los videojuegos, la cultura japonesa y de USA.
    Blogger Comment
    Facebook Comment

0 comentarios:

Publicar un comentario

Gracias por comentar ;-)