Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements From 1 to N

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:

Sao chép các phần tử của một mảng sang mảng khác như thế nào?
Java Program to Implement a Binary Search Tree using Linked Lists
Java Program to Implement Cubic convergence 1/pi Algorithm
How to Remove the Last Character of a String?
Java Program to Implement LinkedHashSet API
Java Program to Find Location of a Point Placed in Three Dimensions Using K-D Trees
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph
File Upload with Spring MVC
Java Program to Implement Word Wrap Problem
HandlerAdapters in Spring MVC
Spring WebFlux Filters
Custom HTTP Header with the HttpClient
Java Program to Implement Quick Sort with Given Complexity Constraint
Running Spring Boot Applications With Minikube
Java Program to Implement Sieve Of Eratosthenes
Finding the Differences Between Two Lists in Java
Các kiểu dữ liệu trong java
Spring Cloud – Securing Services
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Guide to Spring Cloud Kubernetes
Làm thế nào tạo instance của một class mà không gọi từ khóa new?
Prevent Brute Force Authentication Attempts with Spring Security
ETags for REST with Spring
Guide to java.util.concurrent.Locks
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Multi Dimensional ArrayList in Java
Java CyclicBarrier vs CountDownLatch
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Spring Boot with Multiple SQL Import Files
Giới thiệu về Stream API trong Java 8
Chuyển đổi Array sang ArrayList và ngược lại
Logging a Reactive Sequence