개발새발/정렬
[Kotlin] 선형 검색 - Linear Search
조희우
2023. 8. 14. 13:50
🔷 선형 검색 (Linear Search)란?

선형 검색(Linear Search) 혹은 순차 검색(Sequential Search)이라고 불린다.
이름과 같이 데이터의 집합을 처음부터 끝까지 순서대로 비교하여 값을 검색한다.
🔷 선형 검색의 장점
🔹비정렬
선형 검색은 값을 하나하나 비교하는 방식이므로 데이터가 정렬되지 않은 상태에서도 사용이 가능하다.
정보없이 데이터를 찾아야하는 경우에도 유용하게 사용이 가능하다.
🔹쉬운 난이도
데이터를 정렬, 수정할 필요가 없기 때문에 난이도가 쉽다.
🔷 선형 검색의 단점
🔹비효율
방대한 양의 데이터가 있을 경우, 값이 마지막에 위치하거나 존재하지 않는 최악의 경우에 모든 데이터를 확인한다.
데이터의 양이 많아질 수록 검색 시간이 비례하여 늘어난다.
🔷 시간 복잡도
🔹최악의 경우 : O(n)
n개를 입력했을 때, 최악의 경우 n번이 실행된다.
🔹최선의 경우 : Ω(1)
n개를 입력했을 때, 최선의 경우 1번이 실행된다.
🔷 구현
🔹코틀린 (Kotlin)
fun main() {
// 리스트 생성
val mutableList = mutableListOf<Int>(1, 2, 3, 4, 5, 6)
// 리스트 내부 반복
for (i in 0 until mutableList.size){
// 데이터 검색 : 2
if(mutableList[i] == 2){
// 데이터 검색 성공 & 출력
println("found ${mutableList[i]}, Index of ${mutableList[i]} is $i")
return
}
}
// 데이터 검색 실패
println("not found")
}