From 9434b413e72d52cabd9d3c43492647a020f9f3b4 Mon Sep 17 00:00:00 2001 From: Chiranjeev <6258860@gmail.com> Date: Wed, 18 Aug 2021 13:02:09 +0530 Subject: [PATCH] added GeneratePermutations in Backtracking --- Backtracking/GeneratePermutations.js | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Backtracking/GeneratePermutations.js diff --git a/Backtracking/GeneratePermutations.js b/Backtracking/GeneratePermutations.js new file mode 100644 index 000000000..fa302345d --- /dev/null +++ b/Backtracking/GeneratePermutations.js @@ -0,0 +1,33 @@ +/* + * Problem Statement: Generate all distinct permutations of a string/array (all permutations should be in sorted order); + * + * What is permutations? + * - Permutation means possible arrangements in a set (here it is string/array); + * + * Reference to know more about permutations: + * - https://www.britannica.com/science/permutation + * + */ + +const swap = (arr, i, j) => { + const newArray = [...arr]; + + [newArray[i], newArray[j]] = [newArray[j], newArray[i]] // Swapping elements ES6 way + + return newArray +} + +const permutations = (arr, low, high) => { + if (low === high) { + console.log(arr.join(' ')) + return + } + for (let i = low; i <= high; i++) { + arr = swap(arr, low, i) + permutations(arr, low + 1, high) + } +} + +// Driver Code +const input = [1, 2, 3] +permutations(input, 0, input.length - 1)