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 Cloud – Adding Angular
Java Program to Implement HashSet API
Exploring the New Spring Cloud Gateway
Beans and Dependency Injection
Hướng dẫn Java Design Pattern – Decorator
Lớp lồng nhau trong java (Java inner class)
Hamcrest Collections Cookbook
Java Program to Implement D-ary-Heap
Java Program to Perform Partition of an Integer in All Possible Ways
Tính đóng gói (Encapsulation) trong java
Java – Convert File to InputStream
Guide to CountDownLatch in Java
Java Program to Represent Graph Using 2D Arrays
Implementing a Binary Tree in Java
Java Program to Implement Nth Root Algorithm
Giới thiệu Google Guice – Binding
Bootstrapping Hibernate 5 with Spring
Java Program to find the peak element of an array using Binary Search approach
Custom Cascading in Spring Data MongoDB
HttpClient 4 – Follow Redirects for POST
Java Program to Implement Knapsack Algorithm
Tính đa hình (Polymorphism) trong Java
Converting a Stack Trace to a String in Java
Database Migrations with Flyway
Lớp LinkedHashMap trong Java
Spring JDBC
Spring Boot Actuator
A Guide to Apache Commons Collections CollectionUtils
Java Program to Perform Complex Number Multiplication
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
Server-Sent Events in Spring
Spring Boot - Flyway Database