如果已知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; }
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。