En este post sobre Java te mostraré cómo mezclar un arreglo, es decir, ordenar los elementos de un arreglo de manera aleatoria.
Mezclar elementos de arreglo en Java – Orden aleatorio
Mezclar un arreglo en Java sirve para varias cosas, por ejemplo, si cuentas con una lista de canciones o una lista de cosas que necesitas que tengan un orden distinto.
Como sea, al final vamos a obtener un arreglo ordenado de manera aleatoria o mejor dicho, un arreglo desordenado. Y nunca tendrá el mismo orden, pues los elementos van a ser organizados al azar.
Algoritmo general
Lo que tenemos que hacer para aleatorizar un arreglo en Java es simplemente recorrer el arreglo en cuestión y en cada paso mover un elemento a una posición aleatoria.
Para obtener el número aleatorio vamos a usar ThreadLocalRandom que en pocas palabras devuelve un número aleatorio; usaremos esta función para obtener un índice aleatorio.
publicstaticintgetRandomNumber(int min,int max){// nextInt regresa en rango pero con límite superior exclusivo, por eso sumamos 1returnThreadLocalRandom.current().nextInt(min, max +1);}
Mezclar arreglo en Java
Entonces el código completo queda así:
importjava.util.concurrent.ThreadLocalRandom;publicclassMain{publicstaticvoidmain(String[] args){int[] array ={1,2,3,4,5,6,7,8,9,10};// Primero lo imprimimos de manera originalSystem.out.println("Original:");for(int value : array)System.out.print(value +" ");for(int currentIndex =0; currentIndex < array.length; currentIndex++){// Restamos 1 de array.length porque los índices comienzan en 0int randomIndex =getRandomNumber(0, array.length -1);// Hacemos el intercambio...// Almacenamos el actual en una temporalint temp = array[currentIndex];// Al actual le colocamos lo que haya en un índice aleatorio
array[currentIndex]= array[randomIndex];// Y lo que había en el índice aleatorio lo remplazamos por lo que hay en temporal
array[randomIndex]= temp;}// Y al final lo volvemos a imprimir, ya desordenadoSystem.out.println("\nDesordenado");for(int value : array)System.out.print(value +" ");}publicstaticintgetRandomNumber(int min,int max){// nextInt regresa en rango pero con límite superior exclusivo, por eso sumamos 1returnThreadLocalRandom.current().nextInt(min, max +1);}}
Como puedes ver, primero se imprime el arreglo original. Luego lo recorremos y en cada iteración obtenemos un índice aleatorio para intercambiar los elementos.
Finalmente imprimimos el arreglo de nuevo y sus elementos ya van a estar desordenados. En este caso fue un arreglo de tipo int pero puede ser un arreglo de cualquier tipo.
Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto
No te pierdas ninguno de mis posts
Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
En esta entrada sobre Java te mostraré cómo obtener un elemento aleatorio de un arreglo. Es decir, elegir un número o cadena de un arreglo al azar. Lo que tenemos que hacer es generar un índice aleatorio en un rango, y luego usarlo para obtener un elemento del array. Verás…
Hoy vamos a ver cómo seleccionar un elemento de una lista de Python al azar. Las listas en Python son el equivalente a los arreglos que conocemos en otros lenguajes de programación. Para elegir un elemento aleatorio de una lista o arreglo usamos a random.choice. Veamos un ejemplo: import random…
Resumen: implementar algoritmo del ordenamiento de burbuja en Java para ordenar un arreglo usando el método de la burbuja. Vamos a ver cómo aplicar el método de burbuja a arreglos de tipo numérico (int) como a arreglos de tipo cadena (String). Método de la burbuja en Java Este método utiliza…