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:
Constructor Injection in Spring with Lombok
Implementing a Runnable vs Extending a Thread
Java Program to Generate All Possible Combinations of a Given List of Numbers
Java Program to Implement Disjoint Set Data Structure
Implementing a Binary Tree in Java
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Base64 encoding và decoding trong Java 8
Java Program to Implement Quick sort
Batch Processing with Spring Cloud Data Flow
Java Program to Perform Polygon Containment Test
Spring Data MongoDB – Indexes, Annotations and Converters
Java Program to Implement Booth Algorithm
Java – Reader to String
Check If a String Is Numeric in Java
Java Program to Implement PrinterStateReasons API
Write/Read cookies using HTTP and Read a file from the internet
Comparing Objects in Java
Java Convenience Factory Methods for Collections
Java Program to implement Bi Directional Map
Java Program to Check the Connectivity of Graph Using DFS
A Custom Data Binder in Spring MVC
Java TreeMap vs HashMap
Spring Data Reactive Repositories with MongoDB
Java Program to Implement Randomized Binary Search Tree
Spring WebClient Filters
Guide to PriorityBlockingQueue in Java
Một số từ khóa trong Java
Using JWT with Spring Security OAuth
Circular Dependencies in Spring
Java Program to Implement Hamiltonian Cycle Algorithm
Jackson Ignore Properties on Marshalling
Hướng dẫn sử dụng lớp Console trong java