[c] 배열과 탐색 알고리즘

배열은 프로그래밍에서 자주 사용되는 데이터 구조 중 하나입니다. 배열은 동일한 유형의 요소를 순서대로 저장하는데 사용됩니다. 이러한 배열에서 원소를 찾는 것은 프로그래밍에서 매우 일반적인 작업입니다.

선형 탐색 알고리즘

선형 탐색 알고리즘은 배열에서 요소를 찾기 위해 각 요소를 순차적으로 검사합니다.

int linearSearch(int arr[], int n, int x) {
    for (int i = 0; i < n; i++) {
        if (arr[i] == x) {
            return i;  // 요소를 찾음
        }
    }
    return -1;  // 요소를 찾지 못함
}

이진 탐색 알고리즘

이진 탐색 알고리즘은 배열이 정렬되어 있다는 가정 하에 사용됩니다.

int binarySearch(int arr[], int l, int r, int x) {
    if (r >= l) {
        int mid = l + (r - l) / 2;
        if (arr[mid] == x) {
            return mid;  // 요소를 찾음
        }
        if (arr[mid] > x) {
            return binarySearch(arr, l, mid - 1, x);  // 왼쪽 부분 배열에서 탐색
        }
        return binarySearch(arr, mid + 1, r, x);  // 오른쪽 부분 배열에서 탐색
    }
    return -1;  // 요소를 찾지 못함
}

마치며

배열과 탐색 알고리즘은 프로그래밍에서 중요한 요소입니다. 효율적인 알고리즘을 선택하여 배열을 탐색함으로써 프로그램의 성능을 향상시킬 수 있습니다.

참고문헌: