컴퓨터 공학

퀵정렬에서 피봇을 선택하는 방법

혼새미로 2018. 9. 12. 19:25
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
= high - low + 1;
= (low + high) >> 1;//middle element
if (n>7) {
    a = low;
    c = high;
    if (n > 40) {
        d = n >> 3;
        a = MED3(a, a + d, a + 2 * d);
        b = MED3(b - d, b, b + d);
        c = MED3(c - 2 * d, c - d, c);
    }
    b = MED3(a, b, c);
}
if (b != high) {
    tmp = arr[high]; arr[high] = arr[b]; arr[b] = tmp;
}
cs


반응형