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:
Fixing 401s with CORS Preflights and Spring Security
Introduction to Spring Data MongoDB
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Hướng dẫn sử dụng Lớp FilePermission trong java
Java Program to Implement the Edmond’s Algorithm for Maximum Cardinality Matching
Java Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence
Quick Guide to Spring Bean Scopes
Spring – Injecting Collections
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Introduction to Project Reactor Bus
Semaphore trong Java
Spring Boot - Batch Service
Anonymous Classes in Java
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
How to Return 404 with Spring WebFlux
So sánh Array và ArrayList trong Java
Thao tác với tập tin và thư mục trong Java
Guide to java.util.concurrent.Locks
HttpClient 4 – Send Custom Cookie
Java Program to Implement Doubly Linked List
HashMap trong Java hoạt động như thế nào?
Hướng dẫn Java Design Pattern – Service Locator
How to Get a Name of a Method Being Executed?
A Guide to JUnit 5 Extensions
Java Program to Check Whether a Given Point is in a Given Polygon
Java Program to Create the Prufer Code for a Tree
Mapping a Dynamic JSON Object with Jackson
Spring Cloud AWS – RDS
Java Program to Implement Word Wrap Problem
Spring Security 5 for Reactive Applications
Sao chép các phần tử của một mảng sang mảng khác như thế nào?
An Intro to Spring Cloud Task