w3resource

Java: Shuffle a given array of integers


Write a Java program to shuffle a given array of integers.

Example:
Input :
nums = { 1, 2, 3, 4, 5, 6 }
Output:
Shuffle Array: [4, 2, 6, 5, 1, 3]

Sample Solution:

Java Code:

// Import necessary Java classes.
import java.util.Arrays;
import java.util.Random;

// Define a class named 'solution'.
class solution
{
    // A method to shuffle an array using the Fisher-Yates algorithm.
    public static void shuffle(int nums[])
    {
        for (int i = nums.length - 1; i >= 1; i--)
        {
            // Create a random number generator.
            Random rand = new Random();

            // Generate a random index j between 0 and i (inclusive).
            int j = rand.nextInt(i + 1);

            // Swap elements at indices i and j.
            swap_elements(nums, i, j);
        }
    }

    // A method to swap two elements in an array.
    private static void swap_elements(int[] nums, int i, int j) {
        int temp = nums[i];
        nums[i] = nums[j];
        nums[j] = temp;
    }

    public static void main (String[] args)
    {
        int[] nums = { 1, 2, 3, 4, 5, 6 };
        System.out.println("Original Array: "+Arrays.toString(nums));

        // Shuffle the array using the Fisher-Yates algorithm.
        shuffle(nums);

        System.out.println("Shuffled Array: "+Arrays.toString(nums));
    }
}

Sample Output:

Original Array: [1, 2, 3, 4, 5, 6]
Shuffle Array: [4, 2, 6, 5, 1, 3] 

Flowchart:

Flowchart: Shuffle a given array of integers

For more Practice: Solve these Related Problems:

  • Write a Java program to shuffle an array while ensuring no element remains in its original position.
  • Write a Java program to randomly select a subset of k elements from an array of size n.
  • Write a Java program to check if a given shuffled array is a valid permutation of another array.
  • Write a Java program to shuffle an array using the Fisher-Yates algorithm.

Java Code Editor:

Previous: Write a Java program to find maximum product of two integers in a given array of integers.
Next: Write a Java program to rearrange a given array of unique elements such that every second element of the array is greater than its left and right elements.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.