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:
An Intro to Spring Cloud Contract
Từ khóa static và final trong java
Tính kế thừa (Inheritance) trong java
Java Program to Implement ConcurrentLinkedQueue API
Java Program to Perform Search in a BST
Java Streams vs Vavr Streams
Java Program to Perform Inorder Recursive Traversal of a Given Binary Tree
Using a Spring Cloud App Starter
Sử dụng CountDownLatch trong Java
Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins
HashMap trong Java hoạt động như thế nào?
CyclicBarrier in Java
Một số từ khóa trong Java
The Registration API becomes RESTful
A Guide to the Java ExecutorService
Converting a Stack Trace to a String in Java
Functional Interfaces in Java 8
Spring Boot - File Handling
A Guide to Apache Commons Collections CollectionUtils
Java Program to Check whether Graph is a Bipartite using BFS
Java Program to Solve the Fractional Knapsack Problem
Java Program to Find Path Between Two Nodes in a Graph
Spring MVC + Thymeleaf 3.0: New Features
Java Program to Check if it is a Sparse Matrix
Java Program to Generate All Possible Combinations of a Given List of Numbers
Java – Generate Random String
Map Interface trong java
Injecting Prototype Beans into a Singleton Instance in Spring
Java Program to Perform Quick Sort on Large Number of Elements
Java 8 Predicate Chain
Overflow and Underflow in Java
Phân biệt JVM, JRE, JDK