@kuzanatoliorg/algorithms
Version:
The utils package for react testing library
37 lines (36 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeSort = void 0;
const utils_1 = require("../utils");
const mergeSort = (arr, comparator = utils_1.defaultComparator, order = true) => {
if (arr.length > 1) {
let middle = Math.floor(arr.length / 2), i = 0, j = 0, k = 0;
const left = (0, exports.mergeSort)(arr.slice(0, middle), comparator, order);
const right = (0, exports.mergeSort)(arr.slice(middle, arr.length), comparator, order);
while (i < left.length && j < right.length) {
if (order
? comparator(left[i], right[j])
: comparator(right[j], left[i])) {
arr[k] = left[i];
i++;
}
else {
arr[k] = right[j];
j++;
}
k++;
}
while (i < left.length) {
arr[k] = left[i];
k++;
i++;
}
while (j < right.length) {
arr[k] = right[j];
k++;
j++;
}
}
return arr;
};
exports.mergeSort = mergeSort;