JavaScript实现穷举排列(permutation)算法谜题解答
2018-10-12 13:54
585 查看
谜题
穷举一个数组中各个元素的排列
策略
减而治之、递归
JavaScript解
/**
* Created by cshao on 12/23/14.
*/function getPermutation(arr) {
if (arr.length == 1) {
return [arr];
}var permutation = [];
for (var i=0; i<arr.length; i++) {
var firstEle = arr[i];
var arrClone = arr.slice(0);
arrClone.splice(i, 1);
var childPermutation = getPermutation(arrClone);
for (var j=0; j<childPermutation.length; j++) {
childPermutation[j].unshift(firstEle);
}
permutation = permutation.concat(childPermutation);
}
return permutation;
}var permutation = getPermutation(['a','b','c']);
console.dir(permutation);
结果
[ [ 'a', 'b', 'c' ],
[ 'a', 'c', 'b' ],
[ 'b', 'a', 'c' ],
[ 'b', 'c', 'a' ],
[ 'c', 'a', 'b' ],
[ 'c', 'b', 'a' ] ]
您可能感兴趣的文章:
相关文章推荐
- JavaScript实现穷举排列(permutation)算法谜题解答
- JavaScript实现三阶幻方算法谜题解答
- JavaScript实现N皇后问题算法谜题解答
- JavaScript实现N皇后问题算法谜题解答
- 全排列算法 --javascript 实现
- 全排列问题算法及实现(Permutation)
- JavaScript实现处理器双核算法
- 基于javascript实现按圆形排列DIV元素(一)
- 算法-实现each遍历多维数组(javascript)
- JavaScript实现在数组中查找不同顺序排列的字符串
- 排列组合算法总结(含Java实现)
- 经典递归算法之排列,组合,集合和换零钱, Python yield实现.
- 算法与数据结构--实现线性表的合并操作(合并后按非递减排列)--算法2.6
- JavaScript全排列的六种算法 具体实现
- 散列表的实现 -- 数据结构与算法的javascript描述 第八章
- 有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度
- 全排列算法数组实现and全排列算法
- JavaScript实现数字数组按照倒序排列的方法
- C语言实现文件内容按行随机排列的算法示例