javascript 生成一個一億長度的隨機數組,從中排列出最大的1000個項;

1.生成一億個隨機數,從中選出最大的100個

  • 主要思想:直接選取這一億條數據的前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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章