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);