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:
Filtering and Transforming Collections in Guava
Spring Boot - Rest Template
Control the Session with Spring Security
Guide To CompletableFuture
Model, ModelMap, and ModelAndView in Spring MVC
Integer Constant Pool trong Java
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Database Migrations with Flyway
Java Program to Implement K Way Merge Algorithm
Using a Spring Cloud App Starter
How to Read a Large File Efficiently with Java
Converting String to Stream of chars
Lập trình đa luồng với CompletableFuture trong Java 8
A Guide to TreeSet in Java
Java Program to Implement Fermat Primality Test Algorithm
Java NIO2 Path API
Handling Errors in Spring WebFlux
Java Program to Find the Edge Connectivity of a Graph
Spring Boot - CORS Support
Java Program to Find Second Smallest of n Elements with Given Complexity Constraint
Calling Stored Procedures from Spring Data JPA Repositories
Java Program to Solve the Fractional Knapsack Problem
Introduction to Apache Commons Text
Quick Guide on Loading Initial Data with Spring Boot
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Giới thiệu Aspect Oriented Programming (AOP)
XML Serialization and Deserialization with Jackson
Guide to BufferedReader
Java Timer
Marker Interface trong Java
Biến trong java
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line