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 Implement Hash Tables with Linear Probing
@Lookup Annotation in Spring
Inheritance with Jackson
Converting String to Stream of chars
Debug a JavaMail Program
Java Program to Implement LinkedList API
Phương thức tham chiếu trong Java 8 – Method References
Java Program to Encode a Message Using Playfair Cipher
Java Program to Perform Polygon Containment Test
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Convert Character Array to String in Java
Java Optional as Return Type
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Adding Shutdown Hooks for JVM Applications
Mảng (Array) trong Java
A Quick JUnit vs TestNG Comparison
Spring Boot - Runners
Java Program to Check Cycle in a Graph using Topological Sort
A Quick Guide to Spring Cloud Consul
Netflix Archaius with Various Database Configurations
Xây dựng ứng dụng Client-Server với Socket trong Java
Java – Write to File
Java Program to Find the Mode in a Data Set
Guide to java.util.concurrent.BlockingQueue
Hướng dẫn Java Design Pattern – Null Object
Java Program to Implement Brent Cycle Algorithm
Java Program to Compute Discrete Fourier Transform Using Naive Approach
Java Program to Implement Interpolation Search Algorithm
How To Serialize and Deserialize Enums with Jackson
Spring Boot - Admin Server
Java Program to Perform Insertion in a BST
Spring Security OAuth2 – Simple Token Revocation