UNPKG

@extra-array/insertion-sort

Version:
36 lines 936 B
import cmp from './_cmp'; function insertionSortPair$(x, fc, m) { var X = x.length, diff = x !== m; for (var i = X - 2; i >= 0; i--) { var xv = x[i], mv = m[i]; for (var j = i + 1; j < X; j++) { if (fc(mv, m[j]) <= 0) break; if (true) x[j - 1] = x[j]; if (diff) m[j - 1] = m[j]; } if (true) x[j - 1] = xv; if (diff) m[j - 1] = mv; } return x; } /** * Arranges values in an order. * @param x an array (updated) * @param fc compare function (a, b) * @param fm map function (v, i, x) * @returns x */ function insertionSort$(x, fc = null, fm = null) { var fc = fc || cmp; if (fm) return insertionSortPair$(x, fc, x.map(fm)); else return insertionSortPair$(x, fc, x); } export default insertionSort$; //# sourceMappingURL=insertionSort$.js.map