排列组合算法.htm

来自「=== === === === JavaScript经典源代码收集」· HTM 代码 · 共 36 行

HTM
36
字号
<script>
var n=13, r=5;
var OR=new Array(1,2,3,4,5,6,7,8,9,'a','b','c','d');
var C=new Array();
var used=new Array();
var k=1;
 
function combine(pos,h)
{
	var i;
	/*如果已选了r个元素了,则打印它们*/
	if (pos==r) 
	{
		document.write("(",k++,") {",OR[C[0]]);
		for (i=1; i<r; i++) document.write(",",OR[C[i]]);
		document.write("}<br>");
		return;
	}
	/*对于所有未用的元素*/
	for (i=h; i<=n-r+pos; i++) 
	{
		if (!used[i])
		{
			/*把它放置在组合中*/
			C[pos] = i;
			/*使用该元素*/
			used[i]++;
			/*搜索第i+1个元素*/
			combine(pos+1,i+1);
			/*恢复递归前的值*/
			used[i]--;
		}
	}
}
combine(0,0);
</script>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?