본문 바로가기

Deep Learning/Python-Algorithm8

[파이썬 알고리즘 인터뷰] Chap4. Big-O, Data Structure 본 포스팅은 책만 출판사에서 출간한 박상길 님의 '파이썬 알고리즘 인터뷰'를 바탕으로 작성된 포스팅입니다. 개인 공부 목적으로 책을 통해 공부한 알고리즘의 주요 내용들을 요약. 정리합니다. 요약정리 Big-O Big-O는 알고리즘을 다루는 모든 책에 등장하는 중요한 개념이다 알고리즘이 얼마나 효율적인지 효율성을 나타내는 지표라고 생각해볼 수 있다 빅오는 입력값이 무한대로 커질 때 점근적 실행 시간(Asymptotic Running Time)을 표기하는 수학적 표기법 중 하나이다 상한 주어진 경우에서 알고리즘이 수행하는 시간의 상한을 의미한다.(가장 느리게 수행하는 시간!) Amortized Analysis(분할 상한) 해당 경우 알고리즘이 수행하는 최악의 경우만 고려하는 것은 극단적이지 않을까? 최악의 .. 2020. 8. 13.
[알고리즘의 성능 표현 방법] 시간 복잡도와 공간 복잡도 그리고 빅오 표기법 Chap1. 코딩 게임 첫 걸음 떼기 1-4. 알고리즘의 성능은 어떻게 표현할까? 알고리즘의 성능은 시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexity)로 표현한다. 시간 복잡도(Time Complexity): 시간 복잡도는 입력 값의 개수와 알고리즘의 처리 시간과의 상관관계를 표현한 말이다. 입력 데이터의 양이 많아짐에 따라 처리 속도가 어떻게 변하는지를 수학의 기호를 빌려 표현하는 방식이다. "쉽게 생각하면 수학의 방정식을 떠올리면 된다." x축을 입력 값의 개수로 놓고 y축을 처리 시간으로 봤을 때, x가 증가함에 따라 y가 어떻게 변화하는 지를 표현하는 것이다. e.g x와 y가 일정한 비율로 증가한다면 선형(linear)시간 복잡도를 가진다고 표현한다. 지수와.. 2020. 4. 1.