网站地图 | RSS订阅 凌陈亮博客 - 专业上海SEO上海SEO优化,分享网站优化知识,同时提供上海SEO服务。
你的位置:首页 » 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递归函数  

前端脚本

JS输出斐波那契数列

JS输出斐波那契数列

示例一:JS输出前20个斐波那契数列(使用递归算法)

<script type="text/javascript">  
function f(x){return x<1?0:(x<3?1:f(x-1)+f(x-2));}
for(var i=0;i<20;i++){
	document.write(f(i) + ", ");
}
</script>

输出结果:

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

前端脚本

JS实现n~阶加1+2+3+...+n的和

JS实现n~阶加1+2+3+...+n的和

n~阶加1+2+3+...+n 的和(使用递归算法)

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

前端脚本

JS实现求阶乘n!函数

JS实现求阶乘n!函数

求阶乘n! 即,1×2×3×4×5×······×n(使用递归算法)

代码:n为自定义函数名称

function n(i){return i<2?1:i*n(i-1);}

另一种写法:

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

«1»