Topcit

탐색 알고리즘

Life Log 2024. 11. 10. 18:13
728x90
반응형

1️⃣ 탐색 알고리즘이란?

탐색 알고리즘(Search Algorithm)은 주어진 데이터 구조(리스트, 트리, 그래프 등)에서 특정 값을 찾는 방법입니다. 탐색 알고리즘은 데이터의 정렬 여부, 탐색 대상의 크기데이터 구조에 따라 다양한 방식으로 구현됩니다.


2️⃣ 주요 탐색 알고리즘의 종류

  1. 선형 탐색(Linear Search): 리스트의 모든 요소를 차례대로 확인하는 방법.
  2. 이진 탐색(Binary Search): 정렬된 리스트에서 중간 값을 기준으로 탐색 범위를 반으로 줄여나가는 방법.
  3. 깊이 우선 탐색(DFS: Depth-First Search): 그래프나 트리에서 한 경로를 끝까지 탐색하는 방법.
  4. 너비 우선 탐색(BFS: Breadth-First Search): 그래프나 트리에서 가까운 노드부터 탐색하는 방법.

3️⃣ 탐색 알고리즘 예제 문제

예제 1: 선형 탐색

문제: 다음과 같은 리스트에서 숫자 5의 위치를 찾아보세요.

  • 리스트: [3, 1, 4, 5, 9]

풀이:

  • 리스트의 첫 번째 요소부터 순서대로 비교합니다.
  • 3 → 1 → 4 → 5에서 5를 찾을 수 있으며, 인덱스 3입니다.

: 5는 인덱스 3에 위치합니다.

예제 2: 이진 탐색

문제: 정렬된 리스트 [1, 3, 5, 7, 9, 11]에서 숫자 7의 위치를 찾아보세요.

풀이:

  1. 중간 값인 5와 비교합니다.
    • 7 > 5이므로 오른쪽 부분 리스트 [7, 9, 11]에서 탐색을 이어갑니다.
  2. 새로운 중간 값 9와 비교합니다.
    • 7 < 9이므로 왼쪽 부분 리스트 [7]에서 탐색을 이어갑니다.
  3. 7을 찾았습니다.

: 7은 인덱스 3에 위치합니다.

예제 3: 깊이 우선 탐색 (DFS)

문제: 다음과 같은 그래프에서 A에서 시작하여 DFS로 탐색하세요.

  A
 / \
B   C
|   |
D   F
|
E

풀이:

  1. 시작 노드 A 방문
  2. 왼쪽 자식 노드 B 방문
  3. B의 자식 노드 D 방문
  4. D의 자식 노드 E 방문
  5. C 방문 후, F 방문

: 탐색 순서: A → B → D → E → C → F

예제 4: 너비 우선 탐색 (BFS)

문제: 다음과 같은 그래프에서 A에서 시작하여 BFS로 탐색하세요.

  A
 / \
B   C
|   |
D   F
|
E

풀이:

  1. 시작 노드 A 방문
  2. 인접 노드 B, C 방문
  3. B의 자식 노드 D 방문
  4. C의 자식 노드 F 방문
  5. D의 자식 노드 E 방문

: 탐색 순서: A → B → C → D → F → E


4️⃣ 탐색 알고리즘의 장단점 비교

탐색 알고리즘 장점 단점 시간 복잡도
선형 탐색 정렬되지 않은 데이터도 탐색 가능 데이터가 많을 경우 비효율적 O(n)
이진 탐색 빠른 탐색 가능 (정렬된 데이터) 정렬된 리스트에서만 사용 가능 O(log n)
DFS 메모리 사용량 적음 깊은 그래프에서 스택 오버플로우 위험 O(V + E)
BFS 최단 경로 탐색에 유리 메모리 사용량 많음 O(V + E)
  • DFS(깊이 우선 탐색)은 경로 탐색 문제에 적합하며, 스택 자료 구조를 사용하거나 재귀로 구현합니다.
  • BFS(너비 우선 탐색)은 최단 경로 문제에 적합하며, 큐 자료 구조를 사용합니다.

✍️ 정리

  • 선형 탐색은 단순한 리스트에서 사용하기 쉽지만, 데이터가 많을수록 효율이 떨어집니다.
  • 이진 탐색은 정렬된 데이터에서 빠르게 값을 찾는 데 유리합니다.
  • DFS는 깊이 있는 경로 탐색에 적합하고, BFS는 넓이 우선 탐색과 최단 경로 탐색에 적합합니다.
  • 문제의 특성과 데이터 구조에 따라 적합한 탐색 알고리즘을 선택하는 것이 중요합니다.

이 자료는 정보보안 이해와 활용 자료데이터 이해와 활용 자료를 참고하여 작성되었습니다.

728x90
반응형

'Topcit' 카테고리의 다른 글

HashMap이란?  (0) 2024.11.10
싱글페이지 어플리케이션  (1) 2024.11.10
소스 결합도(Source Coupling)  (0) 2024.11.10
이진 트리 순회 방법 (예제)  (0) 2024.11.10
이진 트리 순회 방식  (1) 2024.11.10