Big O Notation(빅오 표기법) #6
💡 **[Colt Steele](https://www.udemy.com/user/coltsteele/) 의 JavaScript Algorithms and Data Structures Masterclass의 강의를 참고하여 정리한 글입니다.** 6. 로그와 시간 복잡도 로그란? 로그는 간단히 말해 지수(n^2, 2^n 등)의 역수이다. 간단한 이해를 돕는 예제로 log2(8) 은 3 이다. 즉, 2^3=8 이라는 말과 같다. 일반적으로 log2(n)은 그냥 log(n) 으로 첨자 처럼 생략된다. 로그의 시간 복잡도 O(log n) 의 시간 복잡도 다음에서 보듯 O(log n)의 시간 복잡도는 처음엔 가파르지만 점점 가파른 정도가 줄어든다라는 것을 알 수 있다. 즉, n 의 값이 커지면 커질 수록 시간 복잡..
ocean floor/algorithm floor / 2022. 2. 25. / dankthedust
Big O Notation(빅오 표기법) #5
💡 **[Colt Steele](https://www.udemy.com/user/coltsteele/) 의 JavaScript Algorithms and Data Structures Masterclass의 강의를 참고하여 정리한 글입니다.** 5. Big O의 공간 복잡성 위의 페이지는 알고리즘에 따른 실행 속도 즉, 런타임과 관련하여 비교하였고 이를 시간 복잡도라고 한다. 입력의 크기가 증가함에 따라 달라지는 알고리즘의 런타임을 분석한 것이다. 이번에 배울 공간 복잡도는 바로 입력 데이터가 차지하는 공간에 따른 분석을 말한다. 즉, 입력 데이터가 차지하는 메모리의 양과 관련된 비교이다. JavaScript 에서의 공간 복잡도에 대한 기본적인 규칙이 존재한다. JS에서의 공간 복잡도 규칙 가장 기본적인 ..
ocean floor/algorithm floor / 2022. 2. 25. / dankthedust
Big O Notation(빅오 표기법) #4
💡 **[Colt Steele](https://www.udemy.com/user/coltsteele/) 의 JavaScript Algorithms and Data Structures Masterclass의 강의를 참고하여 정리한 글입니다.** 4. Big O 표현식의 단순화 3페이지에서 빅오 표현식에 대해서 간단히 알아보았다. 앞전에 살펴보았듯이 solution1은 for 문을 통한 루프가 존재하며, 우리는 해당 코드에서 일어나는 연산을 5n+2 로 정의했었다. 그럼 빅오 표현식도 동일한가? 정답은 그렇지 않다. n 즉, 입력값에 따라 변동하는 빅오 표현식들( n^2 etc...)은 n 값을 크게 보면 다른 값들과 큰 차이성을 두각하지 않는다. 5n+2 나 10n 이나 n 값에 따라 증가하는 시간효율성의..
ocean floor/algorithm floor / 2022. 2. 25. / dankthedust
Big O Notation(빅오 표기법) #3
💡 **[Colt Steele](https://www.udemy.com/user/coltsteele/) 의 JavaScript Algorithms and Data Structures Masterclass의 강의를 참고하여 정리한 글입니다.** 3. Big O 시간 복잡도 2페이지를 통해 보았듯이 입력에 따라 알고리즘의 런타임이 어떻게 증가하는지에 대한 것이 바로 Big O이다. 즉 입력과 해당 입력에 따른 상대적인 시간 간의 관계이다. 다양한 기본적인 표기법이 존재한다. 선형함수 f(n) = n 지수함수 f(n) = n^2, f(n) = 2^n etc... 상수함수 f(n) = 1 이외의 다양한 함수 위의 그래프는 블로그를 탐색하며 빅오의 개념을 정리한 글을 찾아보다 찾게된 그래프이다. 빅오 표기법에서 ..
ocean floor/algorithm floor / 2022. 2. 25. / dankthedust
Big O Notation(빅오 표기법) #2
💡 **[Colt Steele](https://www.udemy.com/user/coltsteele/) 의 JavaScript Algorithms and Data Structures Masterclass의 강의를 참고하여 정리한 글입니다.** 2. 작업의 수를 통한 비교 1.페이지를 통해서 우리는 시간을 통한 성능비교가 크게 신뢰할 수 있는 자료가 아님을 알게 되었다. 그렇다면 어떤 방법을 통해서 더 좋은 코드와 덜 좋은 코드를 구분하고 비교할 수 있을까? 바로 코드를 통해 컴퓨타가 수행해야하는 작업의 수를 계산하는 방법이다. 시간은 해당 컴퓨터의 컨디션, 사양 등에 따라 바뀔 수 있으나 작업의 수는 일정하다.(코드가 변하지 않는다면) 1.페이지에서의 에제를 해결하는 두가지 방법 중 solution2에 ..
ocean floor/algorithm floor / 2022. 2. 25. / dankthedust
Big O Notation(빅오 표기법) (1)
💡 **[Colt Steele](https://www.udemy.com/user/coltsteele/) 의 JavaScript Algorithms and Data Structures Masterclass의 강의를 참고하여 정리한 글입니다.** 1. Big O Notation(빅오 표기법)의 필요성 빅오 표현식은 시간 복잡성 과 공간 복잡성을 정의 한다. 어떤 특정한 문제에 대한 해결 방법이 두 가지 있다고 가정해보자. 두 방법 모두 정상적으로 작동하나 변수의 이름 뿐만 아니라 모든 것이 완전히 다르며, 접근 방식 또한 상이하다. 하나는 루프를 사용한다거나 다른 하나는 목록이나 문자열을 사용할 수도 있다. 이러할 때에 두가지 방법 중에서 어느 것이 좋은 해결 방법이 도리 수 있는지 알 수 있는지에 대한 것..
ocean floor/algorithm floor / 2022. 2. 25. / dankthedust