生成随机数组

  一道经典的面试题,如何把一个有序数组随机打乱。代码如下:

    //生成随机数组,start,end 分别数随机数组的首个数和最后一个数, start < end
    function GetRandomArr(start, end)
    {
        var initArr = []; 
        for (var i = start; i <= end; i++)
        {
            initArr.push(i);
        }
        
        console.log(initArr);
        
        for (var i = 0; i < initArr.length; i++)
        {
            var randomNum = GetRandomNum(0, initArr.length - i);
            var temp = initArr[randomNum];
            initArr[randomNum] = initArr[initArr.length - 1- i ];
            initArr[initArr.length - 1- i ] = temp;
        }
        
        console.log(initArr);
    }
    
    //生成随机数
    function GetRandomNum(start, end)
    {
        var num = Math.random() * (end - start) + start;
        num = parseInt(num);
        return num;
    }

 运行结果如下:

 

posted @ 2017-04-27 00:05  省心菜  阅读(444)  评论(0编辑  收藏  举报