@extra-array/bubble-sort.min
Version:
Arranges values in an order.
37 lines • 934 B
JavaScript
import cmp from './_cmp';
function bubbleSortPair$(x, fc, m) {
var X = x.length, diff = x !== m;
for (var i = 0; i < X - 1; i++) {
for (var j = i + 1; j < X; j++) {
if (fc(m[i], m[j]) <= 0)
continue;
if (true) {
var t = x[i];
x[i] = x[j];
x[j] = t;
}
if (diff) {
var u = m[i];
m[i] = m[j];
m[j] = u;
}
}
}
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 bubbleSort$(x, fc = null, fm = null) {
var fc = fc || cmp;
if (fm)
return bubbleSortPair$(x, fc, x.map(fm));
else
return bubbleSortPair$(x, fc, x);
}
export default bubbleSort$;
//# sourceMappingURL=bubbleSort$.js.map