시간복잡도 (Big-O)
빅오 표기법(Big-O Natation)
- 가장 빠르게 증가하는 항만을 고려하는 표기법
- 함수의 상한만을 나타내게 됨
=> 빅오 표기법은 주어진(최선/최악/평균) 경우의 수행 시간의 상한을 나타낸다.
* (예제1) Fibonacci / non-optimized version
* (예제1) Fibonacci / optimized version
* (예제2) Binary Search
** Big-O 판별해보기 퀴즈 -1
보통의 경우 O(n*2^n)아닌가 생각하기 쉬운데, 사실 계산해보면
이렇게 되기 때문에 결국엔 O(2^n)이라고 판별하는것이 옳다!!!
** Big-O 판별해보기 퀴즈 -2
sum의 값이 b로 초기화됐는데, 이게 a가 될때까지 while loop을 돌아야 함.
그런데 한번 while loop이 돌때마다 sum은 b씩 커짐.
즉, b->2b->3b ... 이런식으로 값이 증가함.
그렇기 때문에 while loop이 돌게 되는 횟수는 a를 b로 나눈 값의 몫이겠지!
** Big-O 판별해보기 퀴즈 -3
** Big-O 판별해보기 퀴즈 -4
** Big-O 판별해보기 퀴즈 -5
** Big-O 판별해보기 퀴즈 -6
--> O(n)*O(n)이니까 O(n^2)
** Big-O 판별해보기 퀴즈 -7
** Big-O 판별해보기 퀴즈 -8
내용 출처 :
www.youtube.com/watch?v=6Iq5iMCVsXA&list=PLjSkJdbr_gFYSUYfnF_OGXtnGs2d3vWg7
www.youtube.com/watch?v=QBZnX_P_dj4&list=PLjSkJdbr_gFYSUYfnF_OGXtnGs2d3vWg7&index=5
freedeveloper.tistory.com/271?category=888096
[이것이 코딩 테스트다] 1. 코딩 테스트 출제 경향 분석 및 파이썬 부수기
www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=1 이것이 코딩 테스트다 소스코드 https://github.com/ndb796/python-for-coding-test 온라인 저지(Online Judge) 란? 프로..
freedeveloper.tistory.com