Merge 분류는 효율성과 예측 가능한 성능에 알려진 인기있는 비교 기반 정렬 알고리즘입니다. 비교 수를 계산하는 방법을 이해하면 구현을 최적화하고 다른 시나리오에서 성능을 분석 할 수 있습니다.

Merge Sort의 기본 개념

Merge는 작은 subarrays로 배열을 분할하고, 각 subarray를 분류하고, 그 후에 함께 그(것)들을 합병합니다. 핵심 가동은 합병 과정에서 요소를 비교하는 것을 포함합니다, 이는 총 비교의 수를 결정합니다.

Merging 도중의 계산 비교

병합 단계에서 비교는 두 개의 정렬 된 하위라이즈에서 더 작은 요소를 선택할 때 발생합니다. 비교 된 각 쌍의 요소에 대해, 하나의 비교는 계산됩니다. subarrays가 크기 n1]n2]를 가지고 있다면, 병합하는 최대의 비교 수는 n1 + n2 - 1]입니다.

Total 비교

병합 정렬의 총 비교 수는 반복의 모든 수준에서 각 병합 작업을 분석하여 대략적으로 분석 할 수 있습니다. 크기의 배열에 대한 n, 총 비교는 대략:

  • n log2 n 평균과 최악의 경우.
  • 반복의 각 수준은 모든 수준에서 요약하는 총 비교와 더불어, 수력 subarrays를 포함합니다.
  • 레벨 더블에 비해 숫자는 더 큰 성장.

Practical 계산 방법

비교를 계산하기 위해, 병합 프로세스를 시뮬레이션하거나 반복적인 관계를 사용합니다.

C(n) = C( ⁇ n/2 ⁇ ) + C( ⁇ n/2 ⁇ ) + (n - 1)]

여기서 C(n)]는 크기n]의 배열에 대한 총 비교입니다. 이 반복적인 공식 계정은 subarrays와 수은 중에 있습니다.