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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ordenar un array de manera que queden del más cercano a M hasta el más alejado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ordenar un array de manera que queden del más cercano a M hasta el más alejado  (Leído 1,880 veces)
maritere22

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Ordenar un array de manera que queden del más cercano a M hasta el más alejado
« 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!! ;)


En línea

85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Ordenar un array de manera que queden del más cercano a M hasta el más alejado
« Respuesta #1 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


En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
maritere22

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ordenar un array de manera que queden del más cercano a M hasta el más alejado
« Respuesta #2 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í
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ordenar un array de manera que queden del más cercano a M hasta el más alejado
« Respuesta #3 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
  1. if (elem[i] > elem[i + 1]){
  2.  
  3.   /* Intercambio */
  4.  
  5. }

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
  1. if (abs(elem[i] - M) > abs(elem[i + 1] - M)){
  2.  
  3.   /* Intercambio */
  4.  
  5. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Source] Ordenar Array (Low y Fast)
Programación Visual Basic
BlackZeroX 3 2,814 Último mensaje 29 Octubre 2009, 18:05 pm
por ssccaann43 ©
Ordenar en Array¡ « 1 2 »
Java
Meg 10 8,106 Último mensaje 31 Enero 2010, 23:13 pm
por tripled
Ordenar array bidimensional
Java
KaRaLLo 5 17,065 Último mensaje 1 Abril 2013, 02:36 am
por seraff
ordenar array php
PHP
kakashi20 5 2,216 Último mensaje 28 Febrero 2013, 15:53 pm
por kakashi20
El Congreso decide que los diputados se queden sus móviles y tabletas hasta ...
Noticias
wolfbcn 0 546 Último mensaje 27 Abril 2016, 18:33 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines