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:

  1. Obtener un índice aleatorio que esté en el rango de a longitud - 1
  2. 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

Mezclar arreglo en C

Mezclar arreglo en C

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í.

Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Relacionado:  Palíndromo en C usando recursividad y ciclos

Únete a otros 390 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: