This is a java program to generate and print all the subsets of a given set as per lexicographical order, here we follow the numerical sequence. First generate all the subsets having only one element, then generate all the subsets having two elements and so on.
Here is the source code of the Java Program to Generate All Subsets of a Given Set in the Lexico-Graphic Order. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to generate all permutation of n elements in lexicographic order import java.util.Random; import java.util.Scanner; public class Lexicographic_Permutation { public static int[] lexicographicOrder(int N) { int[] binary = new int[(int) Math.pow(2, N)]; for (int i = 0; i < Math.pow(2, N); i++) { int b = 1; binary[i] = 0; int num = i; while (num > 0) { binary[i] += (num % 2) * b; num /= 2; b = b * 10; } } return binary; } public static void main(String args[]) { Random random = new Random(); Scanner sc = new Scanner(System.in); System.out.println("Enter the number of elements in the set: "); int N = sc.nextInt(); int[] sequence = new int[N]; for (int i = 0; i < N; i++) sequence[i] = Math.abs(random.nextInt(100)); System.out.println("The elements in the set : "); for (int i = 0; i < N; i++) System.out.print(sequence[i] + " "); for (int i = 1; i < N; i++) { int j = i; int temp = sequence[i]; while (j > 0 && temp < sequence[j - 1]) { sequence[j] = sequence[j - 1]; j = j - 1; } sequence[j] = temp; } int[] mask = new int[(int) Math.pow(2, N)]; mask = lexicographicOrder(N); System.out.println("\nThe permutations are: "); for (int i = 0; i < Math.pow(2, N); i++) { System.out.print("{ "); for (int j = 0; j < N; j++) { if (mask[i] % 10 == 1) System.out.print(sequence[j] + " "); mask[i] /= 10; } System.out.println("}"); } sc.close(); } }
Output:
$ javac Lexicographic_Permutation.java $ java Lexicographic_Permutation Enter the number of elements in the set: 5 The elements in the set : 19 3 37 7 22 The permutations are: { } { 3 } { 7 } { 19 } { 22 } { 37 } { 3 7 } { 3 19 } { 7 19 } { 3 22 } { 7 22 } { 19 22 } { 3 37 } { 7 37 } { 19 37 } { 22 37 } { 3 7 19 } { 3 7 22 } { 3 19 22 } { 7 19 22 } { 3 7 37 } { 3 19 37 } { 7 19 37 } { 3 22 37 } { 7 22 37 } { 19 22 37 } { 3 7 22 37 } { 3 19 22 37 } { 7 19 22 37 } { 3 7 19 37 } { 3 7 19 22 } { 3 7 19 22 37 }
Related posts:
A Guide to ConcurrentMap
Spring Cloud AWS – RDS
Logging in Spring Boot
Hướng dẫn Java Design Pattern – Interpreter
The HttpMediaTypeNotAcceptableException in Spring MVC
Spring Boot - Sending Email
Merging Streams in Java
Java Program to implement Priority Queue
Java Program to Implement Min Hash
Java Program to Find Transpose of a Graph Matrix
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
Tìm hiểu về Web Service
Java InputStream to String
Java Program to Represent Graph Using 2D Arrays
A Guide to JPA with Spring
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Java Program to Implement Levenshtein Distance Computing Algorithm
Simple Single Sign-On with Spring Security OAuth2
Login For a Spring Web App – Error Handling and Localization
Convert Character Array to String in Java
Spring Boot - Batch Service
Java Program to Implement Karatsuba Multiplication Algorithm
Quản lý bộ nhớ trong Java với Heap Space vs Stack
Java Program to Compute Discrete Fourier Transform Using Naive Approach
Java Program to implement Dynamic Array
A Guide to Java SynchronousQueue
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Disable DNS caching
Lớp Collections trong Java (Collections Utility Class)
Java Program to Implement CopyOnWriteArrayList API
Hướng dẫn Java Design Pattern – Transfer Object
Java Program to Implement Quick Sort Using Randomization