11.07.2015 Views

PDF(2)

PDF(2)

PDF(2)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

합병정렬(MergeSort)• 쌍방 합병(two-way merging): 같은 순으로 정렬되어 있는 두 개의배열을 정렬된 하나의 배열로 만드는 과정• 합병을 반복적으로 적용하여 배열을 정렬할 수 있다.• 합볍 정렬의 절차• 분할: 배열을 n/2개의 요소로 구성된 2개의 부분배열로 분할한다.• 정복: 각 부분배열을 정렬한다.• 통합: 정렬된 각 부분배열을 하나의 정렬된 배열로 합병한다.27 10 12 20 25 13 15 2227 10 12 20 25 13 15 2210 12 20 27 13 15 22 2510 12 13 15 20 22 25 2711/34합병정렬 알고리즘• 문제: n개의 키를 오름차순으로 정렬• 입력: 양의 정수 n, 오름차순으로 정렬된 배열 S[0..n-1]• 출력: 오름차순으로 정렬된 배열void mergeSort(int n, keytype S[]){if(n>1){int h = ⎣n/2⎦, m = n-h;keytype U[0..h-1], V[0..m-1];copy S[0..h-1] to U[0..h-1];copy S[h..n-1] to V[0..m-1];mergeSort(h, U);mergeSort(m,V);merge(h, m, U, V, S);}}12/346

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!