22
2019
03

全排列-递归法

如果已知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;
}


« 上一篇下一篇 »

相关文章:

全排列-邻位对换法  (2019-3-22 8:38:20)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。