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:
Generating Random Numbers in a Range in Java
Unsatisfied Dependency in Spring
Java Program to Implement Hash Tables with Quadratic Probing
Spring AMQP in Reactive Applications
Java Program to Implement Ternary Search Tree
Java Program to Find the Longest Path in a DAG
Java Program to Implement HashSet API
Java Program to Implement DelayQueue API
Rest Web service: Filter và Interceptor với Jersey 2.x (P1)
Java Program to Implement LinkedBlockingDeque API
Java Program to Implement Heap Sort Using Library Functions
Java Program to Perform String Matching Using String Library
Java Program to Implement Dijkstra’s Algorithm using Queue
Check if there is mail waiting
Java Program to Encode a Message Using Playfair Cipher
Allow user:password in URL
Introduction to Spliterator in Java
Converting Between Byte Arrays and Hexadecimal Strings in Java
Using Spring ResponseEntity to Manipulate the HTTP Response
Get the workstation name or IP
Guide to BufferedReader
New Features in Java 15
Apache Camel with Spring Boot
Guide to Dynamic Tests in Junit 5
Java Program to Implement Stack using Two Queues
Java Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Convert String to int or Integer in Java
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Guide to Guava Multimap
Spring WebClient vs. RestTemplate
New Features in Java 10
Split a String in Java