CHAPTER07 - 알고리즘 실용화, 가까운 예로 보는 이론,연구의 실전 투입
2022. 11. 16. 20:23
강의 19 알고리즘과 평가
- 데이터 규모와 계산량 차이
- 소규모 데이터에서는 O(n) 알고리즘을 사용하더라도 감당 가능
- 데이터 건수가 늘어날 수록 차이가 점점 커짐
- 알고리즘이란?
- 적당한 값을 입력하면 명확하게 정의된 계산절차에 따라 값이 출력으로 반환되는 것
- 탐색 값을 입력하여 탐색이 이루어지면 그건 '탐색 알고리즘'
- 넓은 의미 : 처리의 흐름 (domain logic)
- 좁은 의미 : 정렬이나 탐색, 해시법과 같은 계산문제의 해법
- 알고리즘을 배우는 의의 - 컴퓨터의 자원은 유한, 엔지니어의 공통언어
- CPU나 메모리 등 컴퓨터의 자원은 유한하다.
- 엔지니어의 공통언어로 작용한다.
- 그 부분은 '해시'로 이뤄졌다 라고 하면 대부분 알아먹는다.
- 알고리즘을 알아둠으로써 새로운 문제에 대처 가능
- 알고리즘 평가 - Order 표기
- 입력크기가 n 일때 대략적으로 이정도의 계산량이 소요됨을 표기하는 기법
- 해시의 경우 n에 의존하지 않으므로 O(1)
- 선형 탐색은 n번 탐색해야 하므로 O(n)
- 이분 탐색은 O(log n)
- 계산량
- 시간 계산량 (실행시간, 단계 횟수)
- 공간 계산량(메모리 사용량)
- 알고리즘과 데이터 구조(자료 구조)
- 데이터 구조(자료 구조)
- 배열, 트리, 힙 ...
- 알고리즘에 자주 사용하는 조작에 맞춰 선택
- 알고리즘에서 자주 사용하는 조작에 맞춰 데이터 구조를 선택할 필요가 있다.
- 데이터 구조(자료 구조)
'책 > 대규모 서비스를 지탱하는 기술' 카테고리의 다른 글
CHAPTER05 - 대규모 데이터 처리 실전 입문 - 애플리케이션 개발의 급소 (0) | 2022.11.15 |
---|---|
CHAPTER04 - 분산을 고려한 MySQL 운용 (0) | 2022.11.14 |
CHAPTER03 - OS 캐시와 분산 (0) | 2022.11.11 |
CHAPTER02 - 메모리와 디스크, 웹 애플리케이션과 부하 (0) | 2022.11.10 |