斐波那契数列:
斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
这个数列从第二项开始,每一项都等于前两项之和。
function abc(num){ if(num<=2){ return 1; } return abc(num-1)+abc(num-2); } 简单的例子。
它是使用递归实现的。
递归的原理图:
就是先实现递的过程,然后再实现归的过程。
冒泡排序:
-
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
-
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
-
针对所有的元素重复以上的步骤,除了最后一个。
-
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
var arr=[2,5,1,0,10,20,4]; function abc2(arr){ for(var i=0;i<arr.length;i++){ for(var j=0;j<arr.length-1;j++){ arr=toCon(arr,j) } } return arr; } function toCon(arr,index){ if(arr[index]>arr[index+1]){ var a=arr[index+1]; arr[index+1]=arr[index]; arr[index]=a; } return arr; } // alert(abc2(arr))
选择排序:
选择排序(Selection sort)是一种简单直观的选择排序。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
function selectS(arr){ if(arr.length==1){ return arr; } var min=arr[0]; var index=0; for(var i=0;i<arr.length;i++){ if(min>arr[i]){ min=arr[i]; index=i; } } var a=arr.splice(index,1); return a.concat(selectS(arr)); } // alert(selectS(arr));
数组去重
就是把数组中重复的值去除
var arr2=[0,0,0,1,2,3,4,5,5,12,1,2]; function delC(arr){ var obj={}; var newArr=[]; for(var i=0;i<arr.length;i++){ if(!obj[arr[i]]){ obj[arr[i]]=1; newArr.push(arr[i]); } } return newArr; } // alert(delC(arr2))