Рубрики
Без рубрики

Сортировка слиянием

-Merge Sort: введение -merge массивы: реализация … Tagged с JavaScript, HTML, CSS, WebDev.

                   -Merge Sort: Introduction
                   -Merge Arrays: Implementation

Сорт -сортировка: введение

Сортировка слияния – это сочетание слияния и сортировки, работает путем разложения массива на меньшие массивы, также известную как стратегия разрыва и завоевания. Процесс разделил больший массив на более мелкие подметки вниз до тех пор, пока не достигнет 0 или 1 элемента, а затем создать недавно отсортированный массив.

Массивы слияния: реализация

Пример сортировки слияния

function merge(arr1, arr2){
    let results = [];
    let i = 0;
    let j = 0;
    while(i < arr1.length && j < arr2.length){
        if(arr2[j] > arr1[i]){
            results.push(arr1[i]);
            i++;
        } else {
            results.push(arr2[j])
            j++;
        }
    }
    while(i < arr1.length) {
        results.push(arr1[i])
        i++;
    }
    while(j < arr2.length) {
        results.push(arr2[j])
        j++;
    }
    return results;
}
merge([100,200], [1,2,3,5,6])


Большинство реализации сортировки слияния используют рекурсию.

function merge(arr1, arr2){
    let results = [];
    let i = 0;
    let j = 0;
    while(i < arr1.length && j < arr2.length){
        if(arr2[j] > arr1[i]){
            results.push(arr1[i]);
            i++;
        } else {
            results.push(arr2[j])
            j++;
        }
    }
    while(i < arr1.length) {
        results.push(arr1[i])
        i++;
    }
    while(j < arr2.length) {
        results.push(arr2[j])
        j++;
    }
    return results;
}

//Recrusive Merge Sort
function mergeSort(arr){
    if(arr.length <= 1) return arr;
    let mid = Math.floor(arr.length/2);
    let left = mergeSort(arr.slice(0,mid));
    let right = mergeSort(arr.slice(mid));
    return merge(left, sright);
}

mergeSort([10,24,76,73])

Оригинал: “https://dev.to/code_regina/merge-sort-1boo”