선형 검색은 대상 값을 찾을 때까지 배열의 모든 요소를 검사하는 간단한 검색 알고리즘입니다. 이 알고리즘은 소규모 배열이나 정렬되지 않은 배열에는 유용하지만 대규모 배열에는 비효율적일 수 있습니다.
function linearSearch(array, target) {
for (let i = 0; i < array.length; i++) {
if (array[i] === target) {
return i;
}
}
return -1;
}
이 구현에서는 어레이의 첫 번째 요소에서 시작하여 목표값을 찾을 때까지 각 요소를 확인합니다. 대상을 찾으면 요소의 인덱스를 반환합니다. 배열에서 모든 요소를 검사했지만 대상을 찾지 못하면 -1을 반환하여 대상이 배열에 없음을 나타냅니다.
const array = [2, 7, 3, 8, 4, 9, 1, 6, 5];
const target = 9;
const result = linearSearch(array, target);
console.log(result); // Output: 5
이 예에서는 9개의 요소로 구성된 배열이 있으며, 9개의 값을 검색하고 있습니다. linearSearch 함수는 값이 9인 요소의 인덱스(5)를 반환합니다.
선형 검색의 시간 복잡도는 O(n)이며, 여기서 n은 배열의 크기입니다. 즉, 알고리즘이 어레이의 모든 요소를 검사하므로 매우 큰 어레이의 경우 성능이 저하될 수 있습니다. 그러나 이 알고리즘은 이해와 구현이 간단하여 소규모 배열이나 더 복잡한 검색 알고리즘의 시작점으로 적합하다.
결론적으로, 선형 검색은 목표값을 찾을 때까지 배열의 모든 요소를 검사하는 간단한 검색 알고리즘입니다. 시간 복잡도는 O(n)이며, 소규모 또는 정렬되지 않은 배열에 유용합니다. 이 알고리즘은 자바스크립트에서 구현하기 쉽고 더 복잡한 검색 알고리즘의 좋은 출발점이 될 수 있다.