UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

45 lines 3.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.quickSort = void 0; /** * Sorts the passed array in place * @param arr The array to sort * @param condition The sorting condition * @param start The index to start sorting at * @param end The index to end sorting at * @returns A reference to the passed array */ function quickSort(arr, condition, start = 0, end = arr.length - 1) { if (start >= end) return arr; let pivotIndex = partition(arr, condition, start, end); quickSort(arr, condition, start, pivotIndex - 1); quickSort(arr, condition, pivotIndex + 1, end); return arr; } exports.quickSort = quickSort; function swap(list, a, b) { [list[a], list[b]] = [list[b], list[a]]; } function partition(arr, condition, start, end) { let pivot = arr[end], pointer = start; if (condition) { for (let i = start; i < end; i++) { if (condition(arr[i], pivot)) { swap(arr, pointer, i); pointer++; } } } else { for (let i = start; i < end; i++) { if (arr[i] < pivot) { swap(arr, pointer, i); pointer++; } } } swap(arr, pointer, end); return pointer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tTb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1aWNrU29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsU0FBUyxDQUNyQixHQUFRLEVBQ1IsU0FBbUMsRUFDbkMsS0FBSyxHQUFHLENBQUMsRUFDVCxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDO0lBRXBCLElBQUksS0FBSyxJQUFJLEdBQUc7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUU3QixJQUFJLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRCxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQztBQWJELDhCQWFDO0FBRUQsU0FBUyxJQUFJLENBQUMsSUFBVyxFQUFFLENBQVMsRUFBRSxDQUFTO0lBQzNDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFDRCxTQUFTLFNBQVMsQ0FDZCxHQUFRLEVBQ1IsU0FBZ0QsRUFDaEQsS0FBYSxFQUNiLEdBQVc7SUFFWCxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQ2hCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFcEIsSUFBSSxTQUFTLEVBQUU7UUFDWCxLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxDQUFDO2FBQ2I7U0FDSjtLQUNKO1NBQU07UUFDSCxLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRTtnQkFDaEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxDQUFDO2FBQ2I7U0FDSjtLQUNKO0lBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFeEIsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyJ9