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 Implement Brent Cycle Algorithm
Java Program to Implement Adjacency List
Template Engines for Spring
Disable Spring Data Auto Configuration
Java Program to Implement Borwein Algorithm
Bootstrap a Web Application with Spring 5
A Guide to the Java LinkedList
Java Program to Check if a Given Set of Three Points Lie on a Single Line or Not
Consumer trong Java 8
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Functional Interfaces in Java 8
Java 8 Collectors toMap
Toán tử instanceof trong java
Từ khóa this và super trong Java
A Custom Data Binder in Spring MVC
Guide To CompletableFuture
Java Program to Implement Hamiltonian Cycle Algorithm
Spring RequestMapping
Mảng (Array) trong Java
Java Program to Represent Graph Using Incidence List
Hướng dẫn sử dụng Java Reflection
Java Program to Find kth Largest Element in a Sequence
Spring MVC + Thymeleaf 3.0: New Features
Java 14 Record Keyword
Java – InputStream to Reader
Spring @RequestMapping New Shortcut Annotations
Unsatisfied Dependency in Spring
Java Program to Delete a Particular Node in a Tree Without Using Recursion
Java Program to Implement Knapsack Algorithm
Testing an OAuth Secured API with Spring MVC
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph