@launchmenu/core
Version:
An environment for visual keyboard controlled applets
45 lines • 3.22 kB
JavaScript
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
;