说我有一个这样的数组:
var a = [
7.774,
7.877,
7.774,
7.868,
7.775,
7.861,
7.790,
7.850,
7.799,
7.848,
7.805,
7.842,
7.813,
7.835,
7.820,
7.833,
7.821,
7.829,
7.824,
7.825
]
现在我想将它们配对成一半大小的数组,其中我将2个数字加在一起。我想尝试将最高数字和最低数字之间的差异尽可能地缩小。
所以现在,我将数组从最小到最大排序。然后我将第一个数字与最后一个数字配对,并继续直到我在中间相遇。
所以,有了那些数字,我最终得到:
var b = [
15.651,
15.642,
15.636,
15.640,
15.647,
15.647,
15.648,
15.653,
15.650,
15.649
]
然后给出了0.017
的最大差异。 (15.653 - 15.636
)。
这是最好的吗?
这是排序代码(javascript):
a.sort(function(a, b) {
return a - b;
});
for (var i = 0; i < (a.length / 2); i++) {
if ((a.length-1) - i > i) {
b.push(a[i]);
b.push(a[(a.length-1) - i]);
}
else {
b.push(a[i]);
}
}