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:
Java – File to Reader
Spring Boot - Google Cloud Platform
String Initialization in Java
Hướng dẫn Java Design Pattern – Service Locator
Serve Static Resources with Spring
Spring Boot with Multiple SQL Import Files
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Java Program to Implement Pairing Heap
Using Java Assertions
Introduction to Spring Cloud Netflix – Eureka
Java Program to Implement Kosaraju Algorithm
Java Program to Compute Discrete Fourier Transform Using the Fast Fourier Transform Approach
Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach
Recommended Package Structure of a Spring Boot Project
Java Program to Find the Longest Path in a DAG
Queue và PriorityQueue trong Java
Java Program to Implement LinkedBlockingDeque API
Java Program to Generate Random Numbers Using Middle Square Method
Introduction to the Functional Web Framework in Spring 5
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Java – Reader to InputStream
An Introduction to ThreadLocal in Java
Spring 5 WebClient
Java Program to Implement Sorted Circular Doubly Linked List
Add Multiple Items to an Java ArrayList
Java Program to Find Maximum Element in an Array using Binary Search
Converting Between a List and a Set in Java
Java 8 and Infinite Streams
Thao tác với tập tin và thư mục trong Java
Java Program to Find kth Largest Element in a Sequence
Spring Autowiring of Generic Types
Java Program to subtract two large numbers using Linked Lists