UNPKG

algs-adt

Version:

An npm package for using data structures like queues or graphs in javascript or typescript

44 lines (43 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeSort = void 0; function mergeSort(list) { if (list.size() <= 1) { return list; } var mid = Math.floor(list.size() / 2); var left = list.subList(0, mid); var right = list.subList(mid, list.size() - mid); mergeSort(left); mergeSort(right); var i = 0; var j = 0; var k = 0; var leftSize = left.size(); var rightSize = right.size(); while (i < leftSize && j < rightSize) { var elemLeft = left.getElement(i); var elemRight = right.getElement(j); if (list.compareFunction(elemRight, elemLeft) === -1) { list.changeInfo(elemRight, k); j += 1; } else { list.changeInfo(elemLeft, k); i += 1; } k += 1; } while (i < leftSize) { list.changeInfo(left.getElement(i), k); i += 1; k += 1; } while (j < rightSize) { list.changeInfo(right.getElement(j), k); j += 1; k += 1; } return list; } exports.mergeSort = mergeSort;