This is java implementation of the Fisher–Yates shuffle (named after Ronald Fisher and Frank Yates)algorithm, also known as the Knuth shuffle (after Donald Knuth), for generating a random permutation of a finite set—in plain terms, for randomly shuffling the set.
Here is the source code of the Java Program to Implement Fisher-Yates Algorithm for Array Shuffling. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a sample program to shuffle the elements of an array using Fisher Yates Array Shuffling algorithm import java.util.Random; import java.util.Scanner; public class Fisher_Yates_Array_Shuffling { static int[] fisherYatesShuffling(int []arr, int n) { int []a = new int[n]; int []ind = new int[n]; for(int i=0; i<n; i++) ind[i] = 0; int index; Random rand = new Random(); for(int i=0; i<n; i++) { do { index = rand.nextInt(n); } while(ind[index] != 0); ind[index] = 1; a[i] = arr[index]; } return a; } public static void main(String agrs[]) { Scanner sc = new Scanner(System.in); System.out.println("Enter the array size: "); int n = sc.nextInt(); System.out.println("Enter the array elements: "); int []a = new int[n]; int []res = new int[n]; for(int i=0; i<n; i++) { a[i] = sc.nextInt(); } res = fisherYatesShuffling(a, n); for(int i=0; i<n; i++) { System.out.print(res[i]+" "); } sc.close(); } }
Output:
$ javac Fisher_Yates_Array_Shuffling.java $ java Fisher_Yates_Array_Shuffling Enter the array size: 12 Enter the array elements: 1 2 3 4 5 6 7 8 9 10 11 12 The shuffled elements are: 7 10 8 4 9 6 12 3 2 1 5 11
Related posts:
Instance Profile Credentials using Spring Cloud
Create a Custom Exception in Java
Introduction to Using Thymeleaf in Spring
Hướng dẫn Java Design Pattern – Transfer Object
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
How to Change the Default Port in Spring Boot
Java InputStream to String
What is a POJO Class?
Spring Boot Change Context Path
Introduction to PCollections
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Java Program to Implement the Bin Packing Algorithm
Java Program to Implement Suffix Tree
An Intro to Spring Cloud Zookeeper
The “final” Keyword in Java
Java Program to Implement Queue
Comparing Strings in Java
Biểu thức Lambda trong Java 8 – Lambda Expressions
Guide to CountDownLatch in Java
Java Program to Check if a Given Graph Contain Hamiltonian Cycle or Not
Display Auto-Configuration Report in Spring Boot
Dockerizing a Spring Boot Application
Java Program to Find a Good Feedback Vertex Set
Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Removing all Nulls from a List in Java
Spring 5 and Servlet 4 – The PushBuilder
Convert Hex to ASCII in Java
Java Program to Check for balanced parenthesis by using Stacks
Spring MVC Custom Validation
Hướng dẫn sử dụng Java Reflection
Java Program to Find Minimum Element in an Array using Linear Search
Java Program to Implement Max Heap