js

二分查找(折半查找)

function binSearch(arr,data){//折半查找,也叫二分查找
    var upperBound=arr.length-1;
    var lowerBound=0;
    while(lowerBound<=upperBound){//未遍历完
      var mid=Math.floor((lowerBound+upperBound)/2);
      document.write("当前中点为:"+mid+'
');//记录选中的中点 if(arr[mid]data){ upperBound=mid-1; }else{ return mid; } } return -1; } binSearch([1,2,43,4,77,34,177,234,45,222],234) // 7

水仙花数

       for(var i = 100 ; i <= 999 ; i++){
                //得到这个i的每一个位
                var hundreds = parseInt(i / 100);
                var decade = parseInt(i % 100 / 10);
                var unit = i % 10;
                //验证是否符合水仙花数的特点
                if(Math.pow(hundreds,3) +  Math.pow(decade,3) + Math.pow(unit,3) == i){
                     console.log(i);
                 }
         }

判断是否为完全二叉树


找出只出现一次的数字

    var onlyOne = function(nums) {
        var result = 0;
        for (var i = 0; i < nums.length; i++) {
            result ^= nums[i]
        }
        return result;
    }
    console.log(onlyOne([1,2,3,1,3]))

斐波那契数列

//递归
function fib(num){
    if(num < 3){
        return 1
    }else{
        return fib(num-1) + fib(num-2)
    }
}
fib(6)      //8
fib(10)    //55
[  1,1,2,3,5,8,13,21,34,55 ]
//普通
    //1.定义三个变量,然后两个初始化值。第三个作为存储使用
    var temp;
    var num1 = 1;
    var num2 = 1;
    //2.先把第二个变量存储进入第三个变量汇总,第二个变量重新赋值成为第一个和第二个之和
    for(var i=1;i<=10;i++){
        temp = num2;
        num2 = num1 + num2;
        //3.把存储好的第三个变量赋值给第一个变量。
        num1 = temp;
        //4.执行10次。(因为前两项不需要计算,所以只需要执行10次)
    }

    alert(num2);

你可能感兴趣的:(js)