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:
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
Spring Cloud – Securing Services
Java Program to Solve the Fractional Knapsack Problem
Spring Cloud AWS – Messaging Support
Java – Random Long, Float, Integer and Double
Implementing a Runnable vs Extending a Thread
Java Program to Implement IdentityHashMap API
Giới thiệu Google Guice – Dependency injection (DI) framework
Convert String to Byte Array and Reverse in Java
Java Program to Implement Insertion Sort
Mảng (Array) trong Java
Spring Boot - Hystrix
Hướng dẫn Java Design Pattern – MVC
Remove All Occurrences of a Specific Value from a List
Java Program to Perform Sorting Using B-Tree
Spring Security 5 for Reactive Applications
Java Program to Check whether Directed Graph is Connected using BFS
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Spring Boot - CORS Support
Simple Single Sign-On with Spring Security OAuth2
Java Program to Implement Pagoda
Spring Boot - Sending Email
Service Registration with Eureka
Guide to Guava Multimap
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Java Program to Describe the Representation of Graph using Adjacency List
Logout in an OAuth Secured Application
Object cloning trong java
Java Program to Describe the Representation of Graph using Adjacency Matrix
HttpClient 4 – Follow Redirects for POST
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
Spring MVC Tutorial