如果已知n-1个元素的排列,将n插入到排列的不同位置,就得到了n个元素的排列。
代码如下:
var n = 5;
var result = [];
quanpailie([], n);
console.log(result);
function quanpailie(a, n){
if(n === 0){
result.push(a.join());
} else {
for(var i = 0; i <= a.length; i++){
quanpailie(insert(a, i, n),n-1);
}
}
}
function insert(a, ind, num) {
a = a.concat();
for(var i = a.length; i > ind; i--) {
a[i] = a[i - 1];
}
a[ind] = num;
return a;
}
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。