Skip to content

Feature shuffle array #6026

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Oct 29, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added Shuffle Algorithm
Fisher-Yates (Knuth) Shuffle algorithm randomly permutes an array's elements, ensuring each permutation is equally likely.
  • Loading branch information
rashi07dashore committed Oct 26, 2024
commit 53b36994752c409feb590d4fbebc8fbce321c267
73 changes: 73 additions & 0 deletions src/main/java/com/thealgorithms/misc/ShuffleArray.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package com.thealgorithms.misc;
import java.util.Random;
import java.util.Scanner;
/**
* The Fisher-Yates (Knuth) Shuffle algorithm randomly permutes an array's
* elements, ensuring each permutation is equally likely.
*
* <p>
* Worst-case performance O(n)
* Best-case performance O(n)
* Average performance O(n)
* Worst-case space complexity O(1)
*
* This class provides a static method to shuffle an array in place.
*
* @author Your Name (https://github.com/Chiefpatwal)
*/
public final class ShuffleArray {
// Prevent instantiation
private ShuffleArray() {
}
/**
* This method shuffles an array using the Fisher-Yates algorithm.
*
* @param arr is the input array to be shuffled
*/
public static void shuffle(int[] arr) {
Random random = new Random();
for (int i = arr.length - 1; i > 0; i--) {
int j = random.nextInt(i + 1);
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
/**
* This method takes user input to create an array.
*
* @return the array created from user input
*/
public static int[] getUserInputArray() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the size of the array: ");
int size = scanner.nextInt();

int[] arr = new int[size];
System.out.println("Enter " + size + " elements:");
for (int i = 0; i < size; i++) {
arr[i] = scanner.nextInt();
}
return arr;
}
public static void main(String[] args) {
int[] userArray = getUserInputArray();
System.out.println("Original Array:");
printArray(userArray);

shuffle(userArray);
System.out.println("Shuffled Array:");
printArray(userArray);
}
/**
* This method prints the elements of the array.
*
* @param arr is the input array to be printed
*/
public static void printArray(int[] arr) {
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
}
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy