Big O 표기법 소개 👀

빅오란?



컴퓨터 과학에서 빅 O는 실행 시간이나 알고리즘이 사용하는 공간을 분석하는 데 사용됩니다. Paul Bachmann, Edmund Landau가 발명했습니다.

예제를 통해 몇 가지 일반적인 시간 복잡성에 대해 논의해 보겠습니다.

일정한 시간 O(1)



알고리즘에 일정한 시간이 있으면 출력을 생성하는 데 항상 동일한 시간이 걸린다는 것을 의미합니다.

예시

function removeLastitem(arr){
  return arr.pop()
}

console.log(removeLastitem([1,2,3,4,5,6]))


위의 예에서 removeLastitem 함수는 배열에 10개 항목이 있는지 20개 항목이 있는지 여부에 상관없이 배열에서 마지막 항목을 제거하는 데 항상 동일한 시간이 걸립니다.

선형 시간 O(n)



알고리즘에 선형 시간이 있는 경우 입력 크기가 커짐에 따라 알고리즘의 실행 시간도 커집니다.

예시

function sum(arr) {
    let total = 0;
    for (let i = 0; i < arr.length; i = i + 1) {
        total += arr[i];
    }
    return total;
}

console.log(sum([1, 2, 3, 4])) //10


위의 예에서 sum 함수는 배열의 크기에 따라 실행 시간을 늘립니다.

2차 시간 O(n2)



알고리즘의 실행 시간은 입력 크기의 제곱에 정비례합니다.

예시 :

function addAndLog(arr) {
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr.length; j++) {
            console.log(arr[i] + arr[j])
        }//O(n)
        console.log("----")
    }// O(n)
}


다음 튜토리얼에서는 당신이 무언가를 배웠기를 희망하는 것에 대해 배울 것입니다.

즐거운 코딩...

reactgo.com에 원래 게시됨

좋은 웹페이지 즐겨찾기