UNPKG

@kuzanatoliorg/algorithms

Version:

The utils package for react testing library

37 lines (36 loc) 1.14 kB
"use strict"; 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;