Related to: Algorithms
개요
알고리즘(Algorithm)은 어떤 문제를 해결하기 위한 절차적 방법 또는 명확한 연산 규칙의 집합입니다. 입력을 받아 정해진 절차를 거쳐 출력을 생성하는 일련의 단계로 구성됩니다.
핵심 개념
알고리즘의 핵심 속성
- 입력 (Input): 처리할 데이터
- 출력 (Output): 결과 데이터
- 명확성 (Definiteness): 각 단계는 명확하고 모호하지 않아야 함
- 유한성 (Finiteness): 유한한 단계 내에 종료되어야 함
- 효율성 (Effectiveness): 각 단계는 계산 가능하고 실행 가능해야 함
알고리즘 성능 분석
- 시간 복잡도 (Time Complexity): 입력 크기에 따른 실행 시간 분석 (예: O(1), O(log n), O(n))
- 공간 복잡도 (Space Complexity): 사용 메모리 크기 분석
대표적인 알고리즘 유형
- 정렬: 버블 정렬, 합병 정렬, 퀵 정렬
- 탐색: 선형 탐색, 이진 탐색, DFS, BFS
- 최적화: 그리디, 동적 계획법, 분할 정복
- 그래프 알고리즘: 다익스트라, 크루스칼, 벨만-포드
- 문자열 처리: KMP, 라빈-카프, 트라이
- 수학적 알고리즘: 유클리드 호제법, 소수 판별, 행렬 곱
알고리즘 설계 기법
- 분할 정복 (Divide and Conquer)
- 동적 계획법 (Dynamic Programming)
- 탐욕 알고리즘 (Greedy Algorithm)
- 백트래킹 (Backtracking)
- 브루트포스 (Brute Force)
활용 분야
- 소프트웨어 개발 및 문제 해결
- 머신러닝 모델 학습 및 최적화
- 경로 탐색, 추천 시스템, 데이터 처리 파이프라인
- 정보 압축 및 암호화
관련 개념
- Data Structure
- Graph
- Tree
- Greedy Algorithm
- Quick Sort
- Depth-First Search(DFS, 깊이 우선 탐색)
- Euclidean Algorithm(유클리드 호제법)
- Permutation(순열)
- Computer Science