This is a java program to implement Alexander Bogomolny’s permutation algorithm. This version of program computes all possible permutations of numbers from 1 to N using Alexander Bogomolyn’s algorithm.
Here is the source code of the Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements From 1 to N. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
package com.sanfoundry.combinatorial;
import java.util.Scanner;
public class AlexanderBogomolnyPermutation
{
static int level = -1;
public static void print(int[] value, int n)
{
if (value.length != 0)
{
for (int i = 0; i < value.length; i++)
{
System.out.print(value[i] + " ");
}
System.out.println();
}
}
public static void visit(int[] Value, int N, int k)
{
level = level + 1;
Value[k] = level;
if (level == N)
print(Value, N);
else
for (int i = 0; i < N; i++)
if (Value[i] == 0)
visit(Value, N, i);
level = level - 1;
Value[k] = 0;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter the size of the sequence:");
int n = sc.nextInt();
int sequence[] = new int[n];
for (int i = 0; i < n; i++)
{
sequence[i] = 0;
}
System.out.println("The permutations are: ");
visit(sequence, n, 0);
sc.close();
}
}
Output:
$ javac AlexanderBogomolnyPermutation.java $ java AlexanderBogomolnyPermutation Enter the size of the sequence: 4 The permutations are: 1 2 3 4 1 2 4 3 1 3 2 4 1 4 2 3 1 3 4 2 1 4 3 2 2 1 3 4 2 1 4 3 3 1 2 4 4 1 2 3 3 1 4 2 4 1 3 2 2 3 1 4 2 4 1 3 3 2 1 4 4 2 1 3 3 4 1 2 4 3 1 2 2 3 4 1 2 4 3 1 3 2 4 1 4 2 3 1 3 4 2 1 4 3 2 1
Related posts:
Java Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence
Java – Write an InputStream to a File
Xử lý ngoại lệ trong Java (Exception Handling)
Java Program to Implement Ternary Heap
HashMap trong Java hoạt động như thế nào?
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Spring Boot: Customize the Jackson ObjectMapper
Toán tử trong java
String Joiner trong Java 8
Java Program to Implement Shunting Yard Algorithm
Spring Boot - Building RESTful Web Services
Sắp xếp trong Java 8
Java – InputStream to Reader
ETags for REST with Spring
Logging a Reactive Sequence
Java Program to Find Transitive Closure of a Graph
Hashtable trong java
Spring MVC Setup with Kotlin
How to Use if/else Logic in Java 8 Streams
Java Program to Perform Searching Based on Locality of Reference
Java Program to Find Nearest Neighbor for Static Data Set
Implementing a Binary Tree in Java
Java Program to Implement Gauss Jordan Elimination
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Lập trình đa luồng với Callable và Future trong Java
Java Program to Implement PriorityQueue API
Tổng quan về ngôn ngữ lập trình java
A Guide to LinkedHashMap in Java
Build a REST API with Spring and Java Config
Assert an Exception is Thrown in JUnit 4 and 5
Service Registration with Eureka