-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”