这是牛客网上的一道题~

题意:对数组排序,顺序是按照数组的平均值,即按照一个元素和平均值相减的绝对值的大小来排序。。。本例按这个绝对值递增排序

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

解题思想:先求出这个数组的平均值,如果 a<b,那么 a-avg<b-avg,这样,abs(a-avg) 小的就排到了前面,即离 avg 近的元素自然就排到了前面。

var arr = [-1,1,3,4,6,10]
function sortA(array){ var sum = 0; for(var i = 0;i < array.length;i++) sum += array[i]; var avg = sum / array.length; array.sort((a,b) => Math.abs(a-avg)-Math.abs(b-avg));
console.log(avg); console.log(array); }

//for test sortA(arr);
//3.8333333333333335
// Array [4, 3, 6, 1, -1, 10]

  

按照绝对值递增的顺序就排好了~

 
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄