분할과 정복 패턴(Divide and Conquer)

주로 배열이나 문자열 같은 큰 규모의 데이터셋을 처리함.

배열을 작은 조각으로 세분화하여 각 조각들을 어디로 이동시킬지 결정하는 작업을 통해 큰 데이터 덩어리를 작은 조각으로 나눔

// 선형탐색
function search(arr, val) {
    for (let i = 0; i < arr.length; i++) {
        if(arr[i] === val) {
            return i
        }
    }
    return -1
}
// O(N)

// 이진탐색 - 분할 정복 알고리즘
function search(arr, val) {
    let min = 0;
    let max = array.length - 1;

    while(min <= max) {
        let middle = Math.floor((min + max) / 2);
        let currentElement = array[middle];

        if(array[middle] < val) {
            min = middle + 1;
        } else if (array[middle] > val) {
            max = middle - 1;
        } else {
            return middle;
        }
    }
    return -1
}
// Log(N)

Last updated