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:
Annotation trong Java 8
Giới thiệu Java 8
Map Interface trong java
Java Program to Implement Direct Addressing Tables
A Guide to Concurrent Queues in Java
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
Java 14 Record Keyword
Anonymous Classes in Java
Java Program to Perform Searching in a 2-Dimension K-D Tree
Intersection of Two Lists in Java
Giới thiệu luồng vào ra (I/O) trong Java
Java Program to Implement LinkedBlockingQueue API
Java Program to Implement the Schonhage-Strassen Algorithm for Multiplication of Two Numbers
Từ khóa this và super trong Java
Java Program for Douglas-Peucker Algorithm Implementation
What is Thread-Safety and How to Achieve it?
LinkedList trong java
Composition, Aggregation, and Association in Java
Using Spring @ResponseStatus to Set HTTP Status Code
Java Program to Implement Cubic convergence 1/pi Algorithm
Spring Security Custom AuthenticationFailureHandler
Using Custom Banners in Spring Boot
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Primitive Type Streams in Java 8
SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS
Shuffling Collections In Java
Hướng dẫn Java Design Pattern – Bridge
An Intro to Spring Cloud Task
Spring Security Remember Me
Java Program to Implement Splay Tree
Hướng dẫn Java Design Pattern – Singleton
Spring Boot - Servlet Filter