[kotlin] 코틀린으로 검색 알고리즘 구현하기

검색 알고리즘은 데이터에서 원하는 값을 찾는 데 사용됩니다. 코틀린은 이러한 검색 알고리즘을 구현하는 데 사용할 수 있는 강력한 기능을 제공합니다. 여기서는 코틀린을 사용하여 선형 검색과 이진 검색 알고리즘을 구현하는 방법에 대해 알아보겠습니다.

선형 검색

선형 검색은 데이터 집합을 처음부터 끝까지 순차적으로 탐색하여 원하는 값을 찾는 방법입니다. 아래는 코틀린으로 선형 검색을 구현한 예제입니다.

fun linearSearch(arr: IntArray, target: Int): Int {
    for (i in arr.indices) {
        if (arr[i] == target) {
            return i
        }
    }
    return -1
}

위의 코드에서 linearSearch 함수는 정수 배열과 찾고자 하는 값(target)을 받아 선형 검색을 수행합니다.

이진 검색

이진 검색은 배열이 이미 정렬된 상태에서 중간 값과 비교하여 탐색 범위를 반으로 줄여가며 값을 찾는 방식입니다. 코틀린으로 이진 검색을 구현한 예제는 다음과 같습니다.

fun binarySearch(arr: IntArray, target: Int): Int {
    var left = 0
    var right = arr.size - 1

    while (left <= right) {
        val mid = left + (right - left) / 2
        when {
            arr[mid] == target -> return mid
            arr[mid] < target -> left = mid + 1
            else -> right = mid - 1
        }
    }
    return -1
}

이 코드에서 binarySearch 함수는 정수 배열과 찾고자 하는 값(target)을 받아 이진 검색을 수행합니다.

검색 알고리즘은 데이터를 효과적으로 탐색하는 데 중요한 역할을 합니다. 코틀린을 사용하여 선형 및 이진 검색 알고리즘을 구현하는 방법을 익혔습니다. 다른 유형의 검색 알고리즘도 존재하므로 관심이 있다면 더 알아보시기 바랍니다.

참고 문헌: