반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 클래스 분류
- 개체명 인식
- SBERT
- 데이터리안
- Optimizer
- 문맥을 반영한 토픽모델링
- 트위치
- 옵티마이저
- KeyBert
- 피파온라인 API
- 붕괴 스타레일
- LDA
- 포아송분포
- CTM
- 원신
- 블루아카이브 토픽모델링
- 토픽 모델링
- 구글 스토어 리뷰
- Roberta
- 데벨챌
- 블루 아카이브
- 코사인 유사도
- NLP
- geocoding
- 조축회
- 데이터넥스트레벨챌린지
- 자연어 모델
- BERTopic
- 다항분포
- Tableu
Archives
- Today
- Total
분석하고싶은코코
시간복잡도 본문
반응형
지금까지 알고리즘을 공부하면서 구조를 이해하고 넘어갔었는데 매번 볼때마다 시간복잡도에 대한 이야기가 있어서 제대로 찾아봐야겠다는 생각을 하게 되었다.
시간복잡도
입력값이 변화에 따라 연산을 실행할때, 연산 횟수에 대비 걸리는 시간을 의미. 즉 효율적인 알고리즘이란 이 연산이 증가함에 따라 이 시간이 얼마나 적게 걸리는지를 이야기한다. 이 시간복잡도 표기법은 '빅-오(Big-O)' 표기법을 사용한다고 한다.
표기법 빅(Big)
- Big-O(빅-오) : 상한 점근(최악)
- Big-Ω(빅-오메가) : 하한 점근(최선)
- Big-θ(빅 세타) : 둘의 평균(중간)
이러한 표기법이 있는데 시간복잡도에서는 빅-오 표기법을 사용하는 이유는 최악의 경우 이정도까지 시간이 걸린다를 고려해야하기 때문이라고 한다.
빅-오(Big-O) 표기법 종류
- O(1) : 일정한 복잡도. 입력값이 증가하더라도 시간이 증가하지 않음. (입력 즉시 값을 얻을 수 있다.)
- O(n) : 입력값이 증가함에 따라 시간이 같은 비율로 증가하는 선형 관계. (1개 1초 -> 100개 100초. for문)
- O(log n) : O(1)다음으로 훌륭한 시간복잡도. 대표적인 예시는 BST(Binary Search Tree). (1~100 숫자 맞추기 Up/Down)
- O(n^2) : 입력값이 증가함에 따라 시간이 제곱으로 증가하는 관계.(1개 1초 -> 10개 100초. 다중 for 문)
- O(2^n) : 가장 느린 알고리즘. 매번 진행할때마다 2배씩 증가한다. (재귀로 구현된 피보나치 수열)
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
다양한 유사도의 종류(1) (2) | 2023.12.06 |
---|---|
다익스트라 알고리즘 (0) | 2022.11.11 |
heap / heapq 모듈 (0) | 2022.11.11 |
BFS, DFS 알고리즘 (0) | 2022.11.03 |
자료구조와 알고리즘 + 코딩 테스트 문제풀이 (0) | 2022.10.20 |