This is a java program to find permutation of N numbers using Heap’s Algorithm. Heap’s algorithm is an algorithm used for generating all possible permutations of some given length.
Here is the source code of the Java Program to Implement Heap’s Algorithm for Permutation of N Numbers. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
package com.sanfoundry.combinatorial; import java.util.Arrays; import java.util.Scanner; public class HeapsPermutation { private static void swap(int[] v, int i, int j) { int t = v[i]; v[i] = v[j]; v[j] = t; } public void permute(int[] v, int n) { if (n == 1) { System.out.println(Arrays.toString(v)); } else { for (int i = 0; i < n; i++) { permute(v, n - 1); if (n % 2 == 1) { swap(v, 0, n - 1); } else { swap(v, i, n - 1); } } } } public static void main(String[] args) { System.out.println("Enter the number of elements in a sequence: "); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println("Enter the sequence: "); int sequence[] = new int[n]; for (int i = 0; i < n; i++) { sequence[i] = sc.nextInt(); } new HeapsPermutation().permute(sequence, n); sc.close(); } }
Output:
$ javac HeapsPermutation.java $ java HeapsPermutation Enter the number of elements in a sequence: 5 Enter the sequence: 2 4 7 3 8 [2, 4, 7, 3, 8] [4, 2, 7, 3, 8] [7, 2, 4, 3, 8] [2, 7, 4, 3, 8] [4, 7, 2, 3, 8] [7, 4, 2, 3, 8] [3, 4, 7, 2, 8] [4, 3, 7, 2, 8] [7, 3, 4, 2, 8] [3, 7, 4, 2, 8] [4, 7, 3, 2, 8] [7, 4, 3, 2, 8] [3, 2, 7, 4, 8] [2, 3, 7, 4, 8] [7, 3, 2, 4, 8] [3, 7, 2, 4, 8] [2, 7, 3, 4, 8] [7, 2, 3, 4, 8] [3, 2, 4, 7, 8] [2, 3, 4, 7, 8] [4, 3, 2, 7, 8] [3, 4, 2, 7, 8] [2, 4, 3, 7, 8] [4, 2, 3, 7, 8] [8, 2, 4, 7, 3] [2, 8, 4, 7, 3] [4, 8, 2, 7, 3] [8, 4, 2, 7, 3] [2, 4, 8, 7, 3] [4, 2, 8, 7, 3] [7, 2, 4, 8, 3] [2, 7, 4, 8, 3] [4, 7, 2, 8, 3] [7, 4, 2, 8, 3] [2, 4, 7, 8, 3] [4, 2, 7, 8, 3] [7, 8, 4, 2, 3] [8, 7, 4, 2, 3] [4, 7, 8, 2, 3] [7, 4, 8, 2, 3] [8, 4, 7, 2, 3] [4, 8, 7, 2, 3] [7, 8, 2, 4, 3] [8, 7, 2, 4, 3] [2, 7, 8, 4, 3] [7, 2, 8, 4, 3] [8, 2, 7, 4, 3] [2, 8, 7, 4, 3] [3, 8, 2, 4, 7] [8, 3, 2, 4, 7] [2, 3, 8, 4, 7] [3, 2, 8, 4, 7] [8, 2, 3, 4, 7] [2, 8, 3, 4, 7] [4, 8, 2, 3, 7] [8, 4, 2, 3, 7] [2, 4, 8, 3, 7] [4, 2, 8, 3, 7] [8, 2, 4, 3, 7] [2, 8, 4, 3, 7] [4, 3, 2, 8, 7] [3, 4, 2, 8, 7] [2, 4, 3, 8, 7] [4, 2, 3, 8, 7] [3, 2, 4, 8, 7] [2, 3, 4, 8, 7] [4, 3, 8, 2, 7] [3, 4, 8, 2, 7] [8, 4, 3, 2, 7] [4, 8, 3, 2, 7] [3, 8, 4, 2, 7] [8, 3, 4, 2, 7] [7, 3, 8, 2, 4] [3, 7, 8, 2, 4] [8, 7, 3, 2, 4] [7, 8, 3, 2, 4] [3, 8, 7, 2, 4] [8, 3, 7, 2, 4] [2, 3, 8, 7, 4] [3, 2, 8, 7, 4] [8, 2, 3, 7, 4] [2, 8, 3, 7, 4] [3, 8, 2, 7, 4] [8, 3, 2, 7, 4] [2, 7, 8, 3, 4] [7, 2, 8, 3, 4] [8, 2, 7, 3, 4] [2, 8, 7, 3, 4] [7, 8, 2, 3, 4] [8, 7, 2, 3, 4] [2, 7, 3, 8, 4] [7, 2, 3, 8, 4] [3, 2, 7, 8, 4] [2, 3, 7, 8, 4] [7, 3, 2, 8, 4] [3, 7, 2, 8, 4] [4, 7, 3, 8, 2] [7, 4, 3, 8, 2] [3, 4, 7, 8, 2] [4, 3, 7, 8, 2] [7, 3, 4, 8, 2] [3, 7, 4, 8, 2] [8, 7, 3, 4, 2] [7, 8, 3, 4, 2] [3, 8, 7, 4, 2] [8, 3, 7, 4, 2] [7, 3, 8, 4, 2] [3, 7, 8, 4, 2] [8, 4, 3, 7, 2] [4, 8, 3, 7, 2] [3, 8, 4, 7, 2] [8, 3, 4, 7, 2] [4, 3, 8, 7, 2] [3, 4, 8, 7, 2] [8, 4, 7, 3, 2] [4, 8, 7, 3, 2] [7, 8, 4, 3, 2] [8, 7, 4, 3, 2] [4, 7, 8, 3, 2] [7, 4, 8, 3, 2]
Related posts:
Spring Security Authentication Provider
Send an email using the SMTP protocol
Lớp Collections trong Java (Collections Utility Class)
Spring MVC + Thymeleaf 3.0: New Features
Add Multiple Items to an Java ArrayList
Java Program to Implement RenderingHints API
Intro to Inversion of Control and Dependency Injection with Spring
Converting String to Stream of chars
Introduction to Spring Data JPA
Arrays.asList vs new ArrayList(Arrays.asList())
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java String to InputStream
Returning Custom Status Codes from Spring Controllers
Java Program to Implement Bubble Sort
Sort a HashMap in Java
Immutable Map Implementations in Java
Java program to Implement Tree Set
Java Program to Implement Sorted Singly Linked List
Weak References in Java
Guide to the Synchronized Keyword in Java
Java Stream Filter with Lambda Expression
Spring Boot - Google Cloud Platform
Toán tử trong java
Java Program to Implement Quick Sort with Given Complexity Constraint
Java Program to Implement Gauss Seidel Method
Migrating from JUnit 4 to JUnit 5
Spring MVC Custom Validation
Custom Exception trong Java
A Comparison Between Spring and Spring Boot
Java Program to Implement LinkedBlockingQueue API
Map to String Conversion in Java
Checked and Unchecked Exceptions in Java