Foros del Web » Programación para mayores de 30 ;) » Programación General »

Método para desordenar un array

Estas en el tema de Método para desordenar un array en el foro de Programación General en Foros del Web. Hola, ¿alguien sabe de algo parecido? Gracias!...
  #1 (permalink)  
Antiguo 26/04/2005, 06:27
 
Fecha de Ingreso: abril-2005
Mensajes: 16
Antigüedad: 19 años, 10 meses
Puntos: 0
Método para desordenar un array

Hola,

¿alguien sabe de algo parecido?

Gracias!
  #2 (permalink)  
Antiguo 26/04/2005, 06:34
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 11 meses
Puntos: 17
Pues hombre, no es muy difícil digamos... Creas un array temporal del mismo tamaño, luego vas recorriendo el original y aleatorizando un número de 0 al tamaño del array menos uno, y usas el número para copiar este en el array temporal. También debes de guardar si está siendo usado cada posición, en ese caso, sumas uno al número aleatorio. (No saques uno nuevo porque si es un array grande de unos 500 elementos, y sólo te queda 1, pues imagínate la de tiempo que puede estar el programa intentando dar en la diana).
  #3 (permalink)  
Antiguo 26/04/2005, 11:07
 
Fecha de Ingreso: diciembre-2002
Mensajes: 23
Antigüedad: 22 años, 3 meses
Puntos: 0
Si tomamos como base que el nombre del array es array y que el numero de elementos es N entonces en seudo-codigo:

1) Asignar el valor 0 a la variable contador.
2) Generar un valor aleatorio en el rango 0 a N - 1
3) Si el valor aleatorio es igual a la variable contador regresar al paso 2
4) Intercambiar el elemento array[aleatorio] y array[contador]
5) Incrementar contador en uno
6) Si el valor de contador es menor que N regresar al paso 2.

Un saludo
  #4 (permalink)  
Antiguo 26/04/2005, 15:28
 
Fecha de Ingreso: abril-2005
Mensajes: 16
Antigüedad: 19 años, 10 meses
Puntos: 0
Muchas gracias a los dos. Es lo q pensé en un primer momento, pero al tratarse de arrays grandes al crear un número aleatorio era muy posible que ya estuviera usado por un paso anterior.

Con la idea de Max de sumar 1 es perfecto. Muchas gracias ;).
  #5 (permalink)  
Antiguo 26/04/2005, 23:24
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 11 meses
Puntos: 17
Cita:
Iniciado por simonvlc
Muchas gracias a los dos. Es lo q pensé en un primer momento, pero al tratarse de arrays grandes al crear un número aleatorio era muy posible que ya estuviera usado por un paso anterior.

Con la idea de Max de sumar 1 es perfecto. Muchas gracias ;).
De nada
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 07:35.