Введение
В этом практическом занятии мы изучим алгоритм сортировки слиянием (Merge Sort) на JavaScript. Алгоритм сортировки слиянием - это популярный алгоритм сортировки, основанный на методе "разделяй и властвуй", который эффективен и широко используется на практике. В конце этого практического занятия вы глубоко поймете, как работает алгоритм сортировки слиянием и как реализовать его в своих собственных проектах на JavaScript.
Алгоритм сортировки слиянием
Для практики программирования с использованием алгоритма сортировки слиянием выполните следующие шаги:
- Откройте Терминал/SSH и введите
node. - Используйте рекурсию для сортировки массива чисел.
- Если
длинамассива меньше2, верните массив. - Используйте
Math.floor()для вычисления середины массива. - Используйте
Array.prototype.slice()для разделения массива на две части и рекурсивно вызовитеmergeSort()для созданных подмассивов. - Наконец, используйте
Array.from()иArray.prototype.shift()для объединения двух отсортированных подмассивов в один.
Вот код:
const mergeSort = (arr) => {
if (arr.length < 2) return arr;
const mid = Math.floor(arr.length / 2);
const l = mergeSort(arr.slice(0, mid));
const r = mergeSort(arr.slice(mid, arr.length));
return Array.from({ length: l.length + r.length }, () => {
if (!l.length) return r.shift();
else if (!r.length) return l.shift();
else return l[0] > r[0] ? r.shift() : l.shift();
});
};
Попробуйте его на этом примере:
mergeSort([5, 1, 4, 2, 3]); // [1, 2, 3, 4, 5]
Резюме
Поздравляем! Вы завершили практическое занятие по алгоритму сортировки слиянием. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.