01-10 14:41
Recent Posts
Recent Comments
관리 메뉴

너와나의 관심사

MergeSort 코드 NlogN 본문

카테고리 없음

MergeSort 코드 NlogN

벤치마킹 2019. 6. 7. 14:25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void MergeSort(Word  arr[], int l, int r)
{
 
    int li = l; //시작점 
 
    int half = (l + r) / 2;
    int ri = half + 1// half +1 부터 시작 
    int idx = l;
 
    if (l == r)
        return;
 
    MergeSort(arr, l, half);
    MergeSort(arr, (l + r) / 2 + 1, r);
 
 
    while (li <= half && ri <= r){
 
        if (WordCmp(arr[li], arr[ri]) >= 0)  temp[idx++= arr[li++];
        else temp[idx++= arr[ri++];
 
    }
 
    while (li <= half) temp[idx++= arr[li++];
    while (ri <= r) temp[idx++= arr[ri++];
 
    //idx 는 l 부터 시작했으니 .결국 시작 포인트는 같게 된다. 
    for (int i = l; i <= r; i++) {
 
        arr[i] = temp[i];
    }
 
}
cs


Comments