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 Binary Tree
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Spring Boot Tutorial – Bootstrap a Simple Application
Introduction to the Java NIO2 File API
Java Program to Implement Ternary Heap
A Guide To UDP In Java
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Sorting in Java
Lớp LinkedHashMap trong Java
Different Ways to Capture Java Heap Dumps
Java Program to Perform Inorder Recursive Traversal of a Given Binary Tree
Java Program to Implement Karatsuba Multiplication Algorithm
Xử lý ngoại lệ trong Java (Exception Handling)
How to Add a Single Element to a Stream
Intersection of Two Lists in Java
Spring Boot Configuration with Jasypt
Java Program to Implement Knight’s Tour Problem
Guide to BufferedReader
Using JWT with Spring Security OAuth (legacy stack)
List Interface trong Java
Java Map With Case-Insensitive Keys
Command-Line Arguments in Java
Java Program to Implement Disjoint Set Data Structure
The Difference Between map() and flatMap()
Jackson JSON Views
Java Program to Perform Naive String Matching
Java Program to Perform Cryptography Using Transposition Technique
Từ khóa static và final trong java
Spring RequestMapping
Java Program to Perform Quick Sort on Large Number of Elements
Debug a JavaMail Program
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line