UNPKG

lgrthms

Version:

Algorithms and data structures for your JavaScript and TypeScript projects 🧑‍💻

21 lines (20 loc) 702 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectionSort = void 0; const Comparator_1 = require("../../utils/Comparator"); const arrays_1 = require("../../utils/arrays"); // O(n^2) time | O(1) space function selectionSort(array, compareFn) { const comparator = new Comparator_1.Comparator(compareFn); for (let i = 0; i < array.length - 1; i++) { let minIdx = i; for (let j = i + 1; j < array.length; j++) { if (comparator.isLessThan(array[j], array[minIdx])) { minIdx = j; } } (0, arrays_1.swap)(array, i, minIdx); } return array; } exports.selectionSort = selectionSort;