En este post te muestro cómo mezclar un arreglo en C, es decir, aleatorizarlo o randomizarlo; como le llames. De este modo al final tendremos el arreglo mezclado, ordenado de forma aleatoria.
Para lograrlo simplemente necesitamos recorrer el arreglo y en cada iteración:
- Obtener un índice aleatorio que esté en el rango de
0
alongitud - 1
- Intercambiar el elemento en el índice del ciclo por el índice aleatorio
¡Vamos allá!
Mezclar arreglo en C
He explicado el funcionamiento arriba. Comenzamos definiendo la función que nos dará un número aleatorio y alimentando a srand
.
La función queda así:
Alimentamos a srand
:
srand(getpid());
Después definimos el arreglo y calculamos su longitud:
Imprimimos el original para que la diferencia se note:
Ahora sí viene la parte del algoritmo para hacer un arreglo aleatorio en C:
Obtenemos un índice aleatorio en la línea 3. Después, el valor en el índice i
es respaldado temporalmente en temporal
. Luego, al elemento que está en i
le ponemos lo que hay en el índice aleatorio y al índice aleatorio le ponemos el temporal.
Poniendo todo junto
Al final de todo, imprimimos el arreglo que ya estará ordenado de forma aleatoria. El código completo queda así:
Si quieres probar el código en línea puedes hacerlo aquí. ¿Más ejercicios sobre C? click aquí.