일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- vscode
- IT
- AWS
- css기초
- 리커젼
- 스코프
- AWS조사
- 기초공부
- Big-O notation
- CSS
- node.js설치
- node.js
- AWS기초
- appendChild
- scope
- 개발툴
- 인터프리터
- 클로저
- var
- 생활코딩
- 메모이제이션
- flex기본
- let
- APPEND
- complexity
- prototype
- JavaScript
- 원본과 복사본
- 재귀함수
- 코드스테이츠
- Today
- Total
Jveloper
Big-O notation 본문
시간복잡도
* 시간복잡도와 공간복잡도 // 여기서는 시간복잡도에 대해서만 정리를 한다
- 큰 프로그램일수록 효율적으로 코드(알고리즘)를 짜야함
- 머신러닝, 데이터분석 등등 좋은성능의 좋은 알고리즘을 필요로함
O(1)
- 상수시간 즉, 한번만 연산하면 바로 답이 나온다는 소리
- example : Array lookup(indexof), HashTable Insertion(종류중 하나 : 객체 key,valuer값 찾는것이 있음)
- lookup이란? array의 index를 가지고 특정 element를 찾아내는것
- Hashtable이란? object가 해쉬테이블의 하나의 형태라고 볼 수 있음
- Hashtable insertion? 특정키로 새로운 value를 추가, 또는 가져오고 삭제하는것
O(log n)
- example : 바이너리 서치(binary search)
- 나누고 정복을 반복( divide and conquer )
- 탐색 알고리즘 중 하나
O(n)
- O(2n) 도 O(n)이다 -> 이유: 근사치로 판단하기 때문
- example : for문 (array.length만큼 도는.)
-----------------------------------------------------> O(n log n) - example : Quick sort, Merge sort, Heap sort
O(n²)
- example : 2중 for문
O(cⁿ)
- 거의 버그에 가까움
- example : password를 만들때
- 패스워드가 길면 길수록 뚫기가 어렵기 때문
당연한 소리겠지만 , 런타임속도는 위로 올라갈수록 좋다
* complexity cheat sheet 검색하면 어떤때에 어떤걸쓰면 최악의 상황을 피할수 있는지 알 수 있음
'자료구조 > 시간복잡도 & 공간복잡도' 카테고리의 다른 글
힙(Heap) (0) | 2019.12.16 |
---|---|
선형구조와 비선형구조(자료구조의 하위 카테고리) (0) | 2019.06.11 |
그래프, 트리, B-tree, 해쉬테이블 (0) | 2019.05.30 |
스택과 큐, linked list (0) | 2019.05.29 |