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:
Custom Thread Pools In Java 8 Parallel Streams
Inheritance and Composition (Is-a vs Has-a relationship) in Java
Java Program to Implement Triply Linked List
Shuffling Collections In Java
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Unsatisfied Dependency in Spring
Java Program to Implement Ford–Fulkerson Algorithm
Java NIO2 Path API
Spring Web Annotations
Java Program to Generate Date Between Given Range
A Custom Data Binder in Spring MVC
Simple Single Sign-On with Spring Security OAuth2
How to Kill a Java Thread
Finding the Differences Between Two Lists in Java
Java Program to Implement Range Tree
Java Program to Perform Addition Operation Using Bitwise Operators
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Java Program to Implement Find all Forward Edges in a Graph
Command-Line Arguments in Java
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Versioning a REST API
Java Program to Find the Longest Path in a DAG
Sử dụng CountDownLatch trong Java
Using the Not Operator in If Conditions in Java
An Intro to Spring Cloud Contract
How to Get the Last Element of a Stream in Java?
Toán tử instanceof trong java
Introduction to Spring Cloud OpenFeign
Java Program to Generate Random Numbers Using Multiply with Carry Method
Converting between an Array and a List in Java
Java – String to Reader
Handling Errors in Spring WebFlux