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 Implement Stack using Two Queues
Converting a List to String in Java
More Jackson Annotations
Java Program to Implement Levenshtein Distance Computing Algorithm
ClassNotFoundException vs NoClassDefFoundError
Java Program to Implement SynchronosQueue API
Java Program to Find Nearest Neighbor Using Linear Search
New Features in Java 11
Binary Numbers in Java
RestTemplate Post Request with JSON
Java Program to Find Transitive Closure of a Graph
Hướng dẫn Java Design Pattern – MVC
Java Program to Represent Graph Using Incidence List
Using the Not Operator in If Conditions in Java
An Intro to Spring Cloud Security
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Comparing Objects in Java
Hướng dẫn Java Design Pattern – Composite
Java Program to Implement Booth Algorithm
Spring Security – security none, filters none, access permitAll
Spring REST with a Zuul Proxy
So sánh HashSet, LinkedHashSet và TreeSet trong Java
Java Program to Find Nearest Neighbor for Static Data Set
Serialize Only Fields that meet a Custom Criteria with Jackson
Java Collections Interview Questions
4 tính chất của lập trình hướng đối tượng trong Java
Từ khóa throw và throws trong Java
Automatic Property Expansion with Spring Boot
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Guide To CompletableFuture
Java Program to implement Bit Set
Phương thức forEach() trong java 8