js 上亿数组,从中找最大的100个

1.主要思想

  • 直接选取这一亿条数据的前100项,生成一个新数组newArray,对newArray项进行排序;
  • 从第101个数字开始循环一亿条数据,跟newArray的最后一项进行比较;
  • 如果循环的当前项arr[i]大于newArray最后一项,则删除newArray的第一项,把当前arr[i] push 进newArray最后一项;
    var arr2 = Array.from({length:100000000},val=>Math.ceil(Math.random()*100000000))
    
    function maxYouNeed(arr){
        var hundred = []
    
        for(var i=0;i<100;i++){
            hundred.push(arr[i])
        }
        hundred.sort(function(a,b){
            return a-b;
        });
    
        for(var i=100;i<arr.length;i++){
            var hLen = hundred.length-1
            if(arr[i]>hundred[hLen]){
                hundred.shift();
                hundred.push(arr[i])
            }
        }
    
        return hundred;
    
    
        
    }
    var maxNum = maxYouNeed(arr2)

2.从一万条随机数中,找出最大值和最小值

var arr2 = Array.from({length:10000},val=>Math.ceil(Math.random()*10000))
console.log(arr2);

var maxN = Math.max.apply(null,arr2)
var minN = Math.min.apply(null,arr2)

console.log(maxN);
console.log(minN);

猜你喜欢

转载自www.cnblogs.com/ajaxkong/p/12796528.html
今日推荐