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:
Read an Outlook MSG file
Java Program to Check Cycle in a Graph using Graph traversal
Guide to Spring @Autowired
Java Program to Implement Merge Sort on n Numbers Without tail-recursion
Java Program to Implement Sorted Array
Java Program to Implement Segment Tree
Immutable ArrayList in Java
Removing all duplicates from a List in Java
Java Program to Implement Heap
Java Program to Perform Stooge Sort
Entity To DTO Conversion for a Spring REST API
Mapping Nested Values with Jackson
Spring RestTemplate Error Handling
Java Program to Implement SynchronosQueue API
Java Program to Implement Patricia Trie
Join and Split Arrays and Collections in Java
Guide to Character Encoding
Custom Error Pages with Spring MVC
Java Program to Implement LinkedHashMap API
Service Registration with Eureka
Java 8 – Powerful Comparison with Lambdas
Simple Single Sign-On with Spring Security OAuth2
Java Program to Implement ConcurrentLinkedQueue API
Java Program to Implement RoleList API
Apache Tiles Integration with Spring MVC
Java Program to Implement ArrayDeque API
Java Program to Implement Fermat Factorization Algorithm
Converting Java Date to OffsetDateTime
Configure a Spring Boot Web Application
Java Program to Find k Numbers Closest to Median of S, Where S is a Set of n Numbers
Java Program to Represent Graph Using Linked List
What is a POJO Class?