【发布时间】:2019-06-22 13:05:44
【问题描述】:
有一个数字数组setOfNumbers = [0, 3, 3, 2, 7, 1, -2, 9],我想对这个集合进行排序,让最小的数字在末尾和开头,最大的数字在排序集的中心,就像这样sortedSetNumbers = [0, 2, 3, 9, 7, 3, 1, -2]。
const setOfNumbers = [0, 3, 3, 2, 7, 1, -2, 9];
const result = [0, 2, 3, 9, 7, 3, 1, -2];
function sortNormal(a, b) {
return true; // Please, change this line
}
const sortedSetNumbers = setOfNumbers.sort((a, b) => sortNormal(a, b));
if (sortedSetNumbers === result) {
console.info('Succeeded Normal Distributed');
} else {
console.warn('Failed Normal Distribution');
}
console.log(sortedSetNumbers);
我确定可以用Array.prototype.sort()方法对这些数字进行排序,但是这个排序函数应该是什么样子的呢?
编辑:该解决方案不必用.sort() 解决。那只是一个想法。
【问题讨论】:
-
也许我对这种分布的工作原理很幼稚,但是您如何确定哪些数字放在开头,哪些放在结尾?还是没关系?
-
这并不重要。结果不必完全是答案中的那个。我已经手动完成了。步骤 1) 选择最大数 2) 找到左集的下一个最大数 3) 将左右改变附加到结果集。
-
@OliverRadini 右侧小于最大值和左侧大于最大值之间的最大值
-
@all 如果问题不够清楚,并且您认为您已经理解我的问题,请随时编辑问题。
标签: javascript sorting gaussian normal-distribution