几个算法练习

//冒泡排序
function bubbleSort(arr)
{

    for(var i = 0; i < arr.length - 1; i++)
    {
        for(var j = 0; j < arr.length - 1 - i; j++)
        {
            if(arr[j] < arr[j+1])
            {
                var temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;

            }
        }
    }
    return arr;
};
//快速排序
function quickSort(arr)
{
    if(arr.length <= 1)
    {
        return arr;
    }
    var num = Math.floor(arr.length/2);
    var numValue = arr.splice(num,1);
    var left = [];
    var right = [];
    for(var i = 0; i < arr.length; i++)
    {
        if(arr[i] < numValue)
        {
            left.push(arr[i]);
        }else
        {
            right.push(arr[i]);
        }
    }
    return quickSort(left).concat([numValue],quickSort(right));

}
//数组去重复
function repeatArray(arr)
{
    if(arr.length <= 1)
    {
        return arr;
    }
    var hash = {};
    var newArray = [];
    for(var i = 0; i < arr.length; i++)
    {
        if(!hash[arr[i]])
        {
            hash[arr[i]] = true;
            newArray.push(arr[i]);
        }
    }
    return newArray;
}
//实现一个数组内所有元素的和。
function sum(arr)
{
    var maxNum = 0;
    if(arr.length <= 1){return arr;}
    for(var i =0;i< arr.length; i++)
    {
        maxNum = maxNum + arr[i];

    }
    return maxNum;
}
//是否存在一个数字
function contains(ele_1,obj)
{
    for(var i = 0; i < ele_1.length; i++)
    {
        if(ele_1[i] === obj)
        {
            //若果存在就就返回true
         return true;

        }else
        {
            //不存在就返回false
         return false;

        }
    }

}
//费波那西数列
//0,1,1,2,3,5,8,13,21,34,55
function Fibonacci(num)
{
    if(num < 1)
    {
        return 0;
    }else if(num < 2)
    {
        return 1;
    }else
    {
        return arguments.callee(num - 1)+arguments.callee(num - 2);
    }
}
//递归算法
function recursionAlgorithm(num)
{
    if(num <= 1)//判断如果num小于等于1的情况下,返回本身
    {
        return 1;
    }else
    {  
        return num * arguments.callee(num - 1); //调用函数本身进行返回
    }
}
//最大数
function MAX(num_1,num_2)
{
    return num_1 > num_2 ? num_1:num_2;
}

你可能感兴趣的:(javaScript)