zoukankan      html  css  js  c++  java
  • 斐波那契数列,冒泡排序,选择排序,数组去重

    斐波那契数列:

    斐波那契数列,又称黄金分割数列,指的是这样一个数列: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);
        }
    简单的例子。

    它是使用递归实现的。

    递归的原理图:

    就是先实现递的过程,然后再实现归的过程。

    冒泡排序:

    1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3. 针对所有的元素重复以上的步骤,除了最后一个。
    4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
    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))
  • 相关阅读:
    抬起头,看到满天星星
    别再嫌弃你妈妈话多唠叨啦,她可能正在做声音健脑操呢
    此生不能不認識的一個人
    长尾夹除了夹东西还能做什么?
    Markdown使用经验总结
    注册quora失败
    电脑插入耳机后声音仍然外放
    centOS下安装tree命令
    解决ubuntu “无法获得锁"
    虚拟机上Ubuntu无法上网问题
  • 原文地址:https://www.cnblogs.com/zhangzhicheng/p/6107077.html
Copyright © 2011-2022 走看看