网站地图 | RSS订阅 凌陈亮博客 - 专业上海SEO上海SEO优化,分享网站优化知识,同时提供上海SEO服务。
你的位置:首页 » JS排列组合
前端脚本

JS实现组合算法总结

JS实现组合算法总结

算法一:循环,一组组合需要几个元素就用几个for(比较笨拙的方法)

示例中是从6个元素中取4个元素进行组合,并显示组合种数和组合列表。

<script type="text/javascript">  
var str="01,02,03,04,05,06";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len-3;i++){
	for(var j=i+1;j<len-2;j++){
		for(var k=j+1;k<len-1;k++){
			for(var l=k+1;l<len;l++){
				newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]+" "+strArray[l]);
			}
		}
	}
}
var len2=newArray.length;
document.write("组合总个数为:" + len2 + "<br />");
for(i=0;i<newArray.length;i++){
	document.write(newArray[i] + "<br />");
}
</script>

算法二:可自己设置元素库以及取N个元素进行组合。

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  

前端脚本

JS从M个元素中取N个排列算法(可重复元素)

JS从M个元素中取N个排列算法(可重复元素)

JS排列算法(可重复元素)示例:从4个元素中取3个进行排列,并显示共有多少种排列方式

<script type="text/javascript">  
var str="01,02,03,04";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len;i++){
	for(var j=0;j<len;j++){
		for(var k=0;k<len;k++){
			newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]);
		}
	}
}
var len2=newArray.length;
document.write("排列方式种类有:" + len2 + " 种<br />");
for(i=0;i<newArray.length;i++){
	document.write(newArray[i] + "<br />");
}
</script>

以上代码采用FOR循环方式,一组排列需要几个元素就用几个for

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  

前端脚本

JS全排列的7种算法总结(不重复元素)

JS全排列的7种算法总结(不重复元素)

全排列是一种时间复杂度为:O(n!)的算法。所有算法均使用JavaScript编写,可直接运行。

算法一:循环,一组排列需要几个元素就用几个for(比较笨拙的方法)

<script type="text/javascript">  
var str="01,02,03,04";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len;i++){
	for(var j=0;j<len;j++){
		if(j!=i){
		for(var k=0;k<len;k++){
			if(k!=i && k!=j){
			for(var l=0;l<len;l++){
				if(l!=i && l!=j && l!=k){
				newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]+" "+strArray[l]);
				}
			}
			}
		}
		}
	}
}
var len2=newArray.length;
document.write("排列方式种类有:" + len2 + " 种<br />");
for(i=0;i<len2;i++){
	document.write(newArray[i] + "<br />");
}
</script>

算法二:交换算法(递归)

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  JS递归函数  

«1»