/
alt3rmann
/
LibreChat
Обзор
Документация
Войти
/
alt3rmann
/
LibreChat
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
api/lib/utils/mergeSort.js
29 строк
765 B
Dan Orlando
Build/Refactor: lint pre-commit hook and reformat repo to spec (#314)
18 май 2023, 21:09
Не верифицирован
18 май 2023, 21:09
7fdc862
Код
Авторство
О чём код?
function mergeSort(arr, compareFn) { if (arr.length <= 1) { return arr; } const mid = Math.floor(arr.length / 2); const leftArr = arr.slice(0, mid); const rightArr = arr.slice(mid); return merge(mergeSort(leftArr, compareFn), mergeSort(rightArr, compareFn), compareFn); } function merge(leftArr, rightArr, compareFn) { const result = []; let leftIndex = 0; let rightIndex = 0; while (leftIndex < leftArr.length && rightIndex < rightArr.length) { if (compareFn(leftArr[leftIndex], rightArr[rightIndex]) < 0) { result.push(leftArr[leftIndex++]); } else { result.push(rightArr[rightIndex++]); } } return result.concat(leftArr.slice(leftIndex)).concat(rightArr.slice(rightIndex)); } module.exports = mergeSort;