lgrthms
Version:
Algorithms and data structures for your JavaScript and TypeScript projects 🧑💻
19 lines (18 loc) • 625 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.insertionSort = void 0;
const Comparator_1 = require("../../utils/Comparator");
const arrays_1 = require("../../utils/arrays");
// O(n^2) time | O(1) space
function insertionSort(array, compareFn) {
const comparator = new Comparator_1.Comparator(compareFn);
for (let i = 1; i < array.length; i++) {
let j = i;
while (j > 0 && comparator.isLessThan(array[j], array[j - 1])) {
(0, arrays_1.swap)(array, j, j - 1);
j--;
}
}
return array;
}
exports.insertionSort = insertionSort;