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:
Spring Boot - OAuth2 with JWT
Introduction to Java Serialization
Functional Interface trong Java 8
A Guide to ConcurrentMap
Spring Boot - Rest Template
Java Program to Implement Hash Tables with Quadratic Probing
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
New Features in Java 14
Versioning a REST API
Java Program to Implement Network Flow Problem
Batch Processing with Spring Cloud Data Flow
Java Program to Implement LinkedBlockingQueue API
Java Program to Perform Uniform Binary Search
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Spring Boot - Sending Email
Java Program to Check whether Graph is a Bipartite using DFS
Java Program to Implement Adjacency Matrix
Java Program to Implement Johnson’s Algorithm
Giới thiệu SOAP UI và thực hiện test Web Service
Send an email with an attachment
Guide to PriorityBlockingQueue in Java
Giới thiệu java.io.tmpdir
Java Program to Implement the MD5 Algorithm
How to Get All Dates Between Two Dates?
Cơ chế Upcasting và Downcasting trong java
Tạo ứng dụng Java RESTful Client với thư viện OkHttp
Java Program to Perform Addition Operation Using Bitwise Operators
Inject Parameters into JUnit Jupiter Unit Tests
Java Program to Implement Heap’s Algorithm for Permutation of N Numbers
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Removing Elements from Java Collections