**선형 탐색(또는 순차 탐색)**은 가장 기본적이고 간단한 탐색 알고리즘입니다. 데이터를 처음부터 끝까지 하나씩 차례대로 확인하면서 **찾고자 하는 값(키 값)**을 찾는 방식입니다.
배열: [10, 25, 37, 40, 52]
찾고자 하는 값: 37
최선 (첫 번째 원소가 정답) | O(1) |
평균 | O(n) |
최악 (마지막 원소 또는 없음) | O(n) |
※ n은 배열의 크기입니다.
public class LinearSearchExample {
// 선형 탐색 메서드
public static int linearSearch(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i; // 찾은 경우 인덱스 반환
}
}
return -1; // 찾지 못한 경우
}
public static void main(String[] args) {
int[] numbers = {10, 25, 37, 40, 52};
int target = 37;
int result = linearSearch(numbers, target);
if (result != -1) {
System.out.println("값 " + target + "은 인덱스 " + result + "에 있습니다.");
} else {
System.out.println("값 " + target + "을 찾을 수 없습니다.");
}
}
}
값 37은 인덱스 2에 있습니다.
알고리즘 이름 | 선형 탐색 (Linear Search) |
사용 조건 | 정렬 여부 상관없음 |
장점 | 단순하고 직관적, 소규모에 적합 |
단점 | 대규모 데이터에서 느림 |
시간 복잡도 | O(n) |
이진 탐색(Binary Search) (0) | 2025.06.15 |
---|---|
병합 정렬(Merge Sort) (0) | 2025.06.15 |
퀵 정렬(Quick Sort) (0) | 2025.06.15 |
버블 정렬(Bubble Sort) (0) | 2025.06.15 |
알고리즘이란 무엇인가요? (0) | 2025.06.15 |