알고리즘은 문제를 해결하거나 작업을 수행하기 위한 절차나 규칙을 나타냅니다. 다양한 알고리즘 종류가 있으며, 목적과 문제에 따라 사용됩니다. 아래는 주요 알고리즘의 분류와 대표적인 종류입니다.
목차
- 1. 정렬 알고리즘
- 2. 탐색 알고리즘
- 3. 최단 경로 알고리즘
- 4. 분할 정복 알고리즘
- 5. 동적 계획법
- 6. 탐욕 알고리즘
- 7. 백트래킹
- 8. 분지 한정 알고리즘
- 9. 기계 학습 알고리즘
- 10. 암호화 알고리즘
- 11. 확률 및 통계 알고리즘
1. 정렬 알고리즘 (Sorting Algorithms)
데이터를 특정 순서대로 정렬하는 알고리즘.
- 버블 정렬 (Bubble Sort)
- 삽입 정렬 (Insertion Sort)
- 선택 정렬 (Selection Sort)
- 퀵 정렬 (Quick Sort)
- 병합 정렬 (Merge Sort)
- 힙 정렬 (Heap Sort)
- 기수 정렬 (Radix Sort)
2. 탐색 알고리즘 (Search Algorithms)
데이터에서 원하는 항목을 찾는 알고리즘.
- 이진 탐색 (Binary Search)
- 선형 탐색 (Linear Search)
- 깊이 우선 탐색 (DFS) (Depth-First Search)
- 너비 우선 탐색 (BFS) (Breadth-First Search)
3. 최단 경로 알고리즘 (Shortest Path Algorithms)
그래프에서 최단 경로를 찾는 알고리즘.
- 다익스트라 알고리즘 (Dijkstra's Algorithm)
- 벨만-포드 알고리즘 (Bellman-Ford Algorithm)
- 플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm)
- A * 알고리즘 (A-Star Algorithm)
4. 분할 정복 알고리즘 (Divide and Conquer Algorithms)
문제를 작은 하위 문제로 나누어 해결하는 알고리즘.
- 퀵 정렬
- 병합 정렬
- 분할 정복을 이용한 이진 탐색
5. 동적 계획법 (Dynamic Programming)
문제를 작은 하위 문제로 나누고 결과를 저장해 중복 계산을 방지하는 알고리즘.
- 피보나치 수열 (Memoization or Tabulation)
- 최장 공통 부분 문자열 (LCS)
- 배낭 문제 (Knapsack Problem)
- 벨만-포드 알고리즘
6. 탐욕 알고리즘 (Greedy Algorithms)
현재 상황에서 최적이라고 판단되는 선택을 하는 알고리즘.
- 크루스칼 알고리즘 (Kruskal's Algorithm)
- 프림 알고리즘 (Prim's Algorithm)
- 활동 선택 문제 (Activity Selection Problem)
7. 백트래킹 (Backtracking)
모든 가능한 경우를 탐색하면서 해결책을 찾는 알고리즘.
- N-퀸 문제
- 미로 찾기 문제
- 부분 집합 합 문제 (Subset Sum Problem)
8. 분지 한정 알고리즘 (Branch and Bound)
최적화 문제를 해결하기 위한 알고리즘.
- TSP(Traveling Salesman Problem) 해결
- 0/1 배낭 문제
9. 기계 학습 알고리즘 (Machine Learning Algorithms)
데이터 기반으로 학습하는 알고리즘.
- 선형 회귀 (Linear Regression)
- 의사 결정 나무 (Decision Tree)
- 서포트 벡터 머신 (SVM)
- K-평균 군집화 (K-Means Clustering)
10. 암호화 알고리즘 (Cryptographic Algorithms)
데이터를 안전하게 보호하기 위한 알고리즘.
- 대칭 암호화: AES, DES
- 비대칭 암호화: RSA, ECC
- 해시 알고리즘: SHA-256, MD5
11. 확률 및 통계 알고리즘
확률적 접근법을 사용해 문제를 해결하는 알고리즘.
- 몬테카를로 알고리즘
- 베이지안 알고리즘
이 외에도 특정 문제나 상황에 따라 다양한 알고리즘이 활용됩니다.
어떤 알고리즘을 선택할지는 문제의 성격, 입력 크기, 그리고 성능 요구사항에 따라 다릅니다.
'개발' 카테고리의 다른 글
파이썬으로 시간복잡도를 알아보자 (0) | 2025.04.18 |
---|---|
Dart Extension (확장 메서드) 정리 (0) | 2025.04.18 |
Dart 심화 문법 (0) | 2025.04.18 |
Dart 기초 문법 정리 (0) | 2025.04.18 |