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:
A Guide to EnumMap
New Features in Java 10
REST Web service: Basic Authentication trong Jersey 2.x
Filtering and Transforming Collections in Guava
Java Program to Implement Skew Heap
Lập trình đa luồng với CompletableFuture trong Java 8
Getting the Size of an Iterable in Java
Introduction to Java 8 Streams
Java Program to Describe the Representation of Graph using Adjacency List
Updating your Password
A Quick Guide to Spring Cloud Consul
Functional Interface trong Java 8
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Spring Boot - Securing Web Applications
Spring Security Login Page with React
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
Spring Boot - Hystrix
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Java Program to Represent Graph Using Incidence Matrix
Spring 5 Testing with @EnabledIf Annotation
Một số nguyên tắc, định luật trong lập trình
Java Program to Find the Edge Connectivity of a Graph
Java Byte Array to InputStream
Java Program to Implement Karatsuba Multiplication Algorithm
Spring @RequestMapping New Shortcut Annotations
MyBatis with Spring
Java Program to Delete a Particular Node in a Tree Without Using Recursion
Using JWT with Spring Security OAuth (legacy stack)
A Guide to BitSet in Java
Request a Delivery / Read Receipt in Javamail
Java Program to Find Transitive Closure of a Graph
Hướng dẫn Java Design Pattern – Transfer Object