Skip to content

Commit 9e04b42

Browse files
committed
Add permutations
1 parent c180579 commit 9e04b42

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

‎src/combinatorics/permutations.js‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
var permutations = (function () {
2+
'use strict';
3+
4+
var res;
5+
6+
function swap(arr, i, j) {
7+
var temp = arr[i];
8+
arr[i] = arr[j];
9+
arr[j] = temp;
10+
}
11+
12+
function permutations(arr, current) {
13+
if (current >= arr.length) {
14+
return res.push(arr.slice());
15+
}
16+
for (var i = current; i < arr.length; i += 1) {
17+
swap(arr, i, current);
18+
permutations(arr, current + 1);
19+
swap(arr, i, current);
20+
}
21+
}
22+
23+
return function (arr) {
24+
res = [];
25+
permutations(arr, 0);
26+
return res;
27+
};
28+
}());

0 commit comments

Comments
 (0)