28 lines
518 B
JavaScript
28 lines
518 B
JavaScript
import appearance from "./appearance.js";
|
|
import {sum} from "./ascending.js";
|
|
|
|
export default function(series) {
|
|
var n = series.length,
|
|
i,
|
|
j,
|
|
sums = series.map(sum),
|
|
order = appearance(series),
|
|
top = 0,
|
|
bottom = 0,
|
|
tops = [],
|
|
bottoms = [];
|
|
|
|
for (i = 0; i < n; ++i) {
|
|
j = order[i];
|
|
if (top < bottom) {
|
|
top += sums[j];
|
|
tops.push(j);
|
|
} else {
|
|
bottom += sums[j];
|
|
bottoms.push(j);
|
|
}
|
|
}
|
|
|
|
return bottoms.reverse().concat(tops);
|
|
}
|