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 Boot - Bootstrapping
Getting Started with Stream Processing with Spring Cloud Data Flow
Simple Single Sign-On with Spring Security OAuth2
Java Program to Implement Sorted Doubly Linked List
Java Program to Perform the Sorting Using Counting Sort
Spring Cloud Connectors and Heroku
Java 8 and Infinite Streams
Iterating over Enum Values in Java
Java Program to Implement Stack using Two Queues
Allow user:password in URL
A Guide to Java SynchronousQueue
Setting a Request Timeout for a Spring REST API
Transaction Propagation and Isolation in Spring @Transactional
Introduction to Spring Cloud CLI
Java CyclicBarrier vs CountDownLatch
Java Collections Interview Questions
Java Program to Find Nearest Neighbor for Static Data Set
Extract links from an HTML page
Feign – Tạo ứng dụng Java RESTful Client
Java Program to Implement Flood Fill Algorithm
Exploring the New Spring Cloud Gateway
Returning Image/Media Data with Spring MVC
Java Program to Implement WeakHashMap API
An Intro to Spring Cloud Contract
Java Program to Implement Variable length array
Java Program to Generate N Number of Passwords of Length M Each
The DAO with Spring and Hibernate
Spring REST API with Protocol Buffers
Spring Security Authentication Provider
A Guide to the ResourceBundle
Java 8 Streams peek() API
Java Timer