Título: Ordenar un array de manera que queden del más cercano a M hasta el más alejado Publicado por: maritere22 en 7 Abril 2013, 14:48 pm Hola! Necesito ayuda... tengo que hacer un programa, y lo primero de todo es ordenar un array, pero no tengo idea de cómo hacerlo...
Me dan un array N con números enteros ordenados de menor a mayor, y un número M. Se trata de reordenar el array de manera que queden ordenados del más cercano a M hasta el más alejado. Por ejemplo: Tengo un array N[]={0,2,3,5,7,10} Y un número M=3; Al final quedaría de esta forma: N[]={3,2,5,0,7,10} Gracias de antemano!! ;) Título: Re: Ordenar un array de manera que queden del más cercano a M hasta el más alejado Publicado por: 85 en 7 Abril 2013, 15:59 pm claro, vos estás diciendo los más cercanos con respecto a la posición, por eso 2,5,0, etc se me ocurren varias maneras, una puede ser obtener la diferencia de cada número con M y ordenar un vector según las diferencias de menor a mayor. Usarías un valor absoluto para las diferencias.
hay otras formas que se me ocurren, fijate esa Título: Re: Ordenar un array de manera que queden del más cercano a M hasta el más alejado Publicado por: maritere22 en 10 Abril 2013, 09:24 am Sí, a mi se me ocurrió la misma forma, pero no sé cómo implementarla, por eso lo pregunté aquí
Título: Re: Ordenar un array de manera que queden del más cercano a M hasta el más alejado Publicado por: rir3760 en 10 Abril 2013, 17:17 pm Al utilizar un algoritmo sencillo comparas dos elementos para saber cual es mayor, por ejemplo utilizando BubbleSort:
Código
La única modificación que debes hacer es la ya indicada por 85: en lugar de comparar los valores directamente (como en el ejemplo anterior) comparas las diferencias entre los valores y el referente (3 en tu caso). Si suena complicado te aseguro no lo es, solo debes utilizar la función abs (prototipo en <stdlib.h>) y una resta. Siguiendo el ejemplo anterior la comparación cambia a: Código
Un saludo |