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
- 앱 개발
- 메모리
- 스레드
- cs
- OS
- 운영체제
- React
- 데이터베이스
- reactnative
- db
- 프로세스
- 디자인패턴
- Operating System
- 안드로이드
- MVVM
- 앱
- 안드로이드 개발
- 리액트네이티브
- CS지식
- 액티비티
- 리액트
- 앱개발
- 코틀린
- Database
- Kotlin
- 디자인 패턴
- 안드로이드 디자인 패턴
- 개발
- github
- Android
Archives
- Today
- Total
Tech Log
[Algorithm] 시간 복잡도와 공간 복잡도 본문
복잡도는 시간 복잡도와 공간 복잡도로 나뉜다.
시간복잡도
문제를 해결하는 데 걸리는 시간과 입력의 함수 관계.
어떠한 알고리즘 로직이 얼마나 오랜 시간 걸리는지를 나타내는 데 쓰인다.
보통 빅오 표기법으로 나타낸다.
이는 효율적인 코드로 개선하는데 쓰이는 척도가 된다.
빅오 표기법
입력 범위 n을 기준으로 로직이 몇 번 반복되는지 나타내는 것.
가장 영향을 많이 끼치는 항의 상수 인자를 빼고 나머지 항을 없앤 것이다.
속도 비교
O(1)과 O(n^2)는 입력 크기 n이 커질 수록 차이가 많이 나게 된다.
공간 복잡도
프로그램을 실행시켰을 때 필요로 하는 자원 공간의 양.
정적 변수로 선언된 것 말고도 동적으로 공간을 계속해서 필요로 하는 경우도 포함된다.
자료 구조에서 시간 복잡도
위 그림은 자료 구조에서 평균 시간 복잡도를 나타낸 것이다.
위 그림은 자료 구조에서 최악의 경우 시간 복잡도를 나타낸 것이다.
참조
- 주홍철, 면접을 위한 CS 전공지식 노트, 길벗(2022)
Comments