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 Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Spring’s RequestBody and ResponseBody Annotations
Java Program to Implement the Edmond’s Algorithm for Maximum Cardinality Matching
Java Program to Implement DelayQueue API
Spring Boot - Google Cloud Platform
Một số từ khóa trong Java
Guide to the Java Clock Class
Command-Line Arguments in Java
Spring Boot - Scheduling
Understanding Memory Leaks in Java
How to Iterate Over a Stream With Indices
Giới thiệu JDBC Connection Pool
Java Program to Optimize Wire Length in Electrical Circuit
Java Program to Implement Karatsuba Multiplication Algorithm
Java Program to Implement Hash Tables Chaining with List Heads
Java Program to Check if a Matrix is Invertible
Check If a File or Directory Exists in Java
Hướng dẫn Java Design Pattern – Visitor
Create Java Applet to Simulate Any Sorting Technique
Extract links from an HTML page
Java Program to Implement Variable length array
What is a POJO Class?
Spring Data – CrudRepository save() Method
How to Get All Spring-Managed Beans?
Java Program to Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Tìm hiểu về Web Service
Introduction to Liquibase Rollback
Java Program to Find Inverse of a Matrix
Java Program to Implement Caesar Cypher
How to Add a Single Element to a Stream
Spring WebClient and OAuth2 Support
Introduction to the Java NIO2 File API