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:
Testing an OAuth Secured API with Spring MVC
Java Program to Implement Radix Sort
Java Program to Check Whether an Undirected Graph Contains a Eulerian Cycle
Java Program to Check if a Given Set of Three Points Lie on a Single Line or Not
Giới thiệu java.io.tmpdir
Updating your Password
Java Program to do a Depth First Search/Traversal on a graph non-recursively
DistinctBy in the Java Stream API
CharSequence vs. String in Java
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Làm thế nào tạo instance của một class mà không gọi từ khóa new?
Spring Boot - Creating Docker Image
Intersection of Two Lists in Java
Java Program to implement Associate Array
Java Program to Implement Queue using Linked List
Assert an Exception is Thrown in JUnit 4 and 5
Giới thiệu Json Web Token (JWT)
Java 8 Collectors toMap
Java Program to Implement Dijkstra’s Algorithm using Queue
The Basics of Java Security
Java Program to Implement ArrayBlockingQueue API
Spring NoSuchBeanDefinitionException
Java Copy Constructor
Hamcrest Collections Cookbook
Java Program to Implement Best-First Search
Spring REST with a Zuul Proxy
Java Program to Check whether Undirected Graph is Connected using DFS
Java Program to Implement Range Tree
Giới thiệu Google Guice – Binding
Java Program to Represent Graph Using Adjacency List
HttpClient 4 – Follow Redirects for POST
Jackson – Bidirectional Relationships