본문 바로가기
  • 개발 / 공부 / 일상
Javascript

(Javascript) mergeSort

by JJeongHyun 2023. 1. 16.
반응형

mergeSort

  •  전체 데이터를 하나의 단위로 분할한 후 다시 합치면서 정렬하는 방식
function merge(leftArr, rightArr) {
        const result = [];
        let leftIdx = 0,
          rightIdx = 0;
        while (leftIdx < leftArr.length && rightIdx < rightArr.length) {
          if (leftArr[leftIdx] < rightArr[rightIdx]) {
            result.push(leftArr[leftIdx++]);
          } else {
            result.push(rightArr[rightIdx++]);
          }
        }
        return [
          ...result,
          ...leftArr.slice(leftIdx),
          ...rightArr.slice(rightIdx),
        ];
}
function mergeSort(arr) {
        console.log(`separate count : ${count}, ${arr}`);
        if (arr.length === 1) return arr;

        const midPoint = parseInt(arr.length / 2);
        count++;
        return merge(
          mergeSort(arr.slice(0, midPoint)),
          mergeSort(arr.slice(midPoint))
        );
      }

mergeSort 전체 배열 분할 과정

'Javascript' 카테고리의 다른 글

(Javascript) Javascript Runtime  (0) 2023.04.04
(JavaScript) JS 동작원리  (0) 2023.04.02
(Javascript) selectionSort  (0) 2023.01.16
(Javascript) InsertSort  (0) 2023.01.16
(Javascript) bubbleSort  (0) 2023.01.16