Arrays and Iteration
Linear Search
Walk an array once looking for a target value. Return the index of the
first match, or -1 if none. The simplest possible search loop.
Algorithm
Canonical input arr = [4, 7, 1, 9, 3, 8] with target = 9 finishes
after four compares; the matching index is 3.
Basic Implementation
basic.kt
fun linearSearch(arr: IntArray, target: Int): Int {
for (i in arr.indices) {
if (arr[i] == target) {
return i
}
}
return -1
}
fun main() {
val arr = intArrayOf(4, 7, 1, 9, 3, 8)
val target = 9
val result = linearSearch(arr, target)
println(result)
}
Complexity
- Time: O(n)
- Space: O(1)
Implementation notes
- Kotlin: explicit
for (i in arr.indices)with an earlyreturn ithe momentarr[i] == target. The stdlibarr.indexOf(target)would hide the walk the lesson is teaching. - Function signature
fun linearSearch(arr: IntArray, target: Int): Intdocuments the array contract; the-1sentinel mirrors the language-neutral spec rather than returningInt?. - The replay shows the running index, the element being checked, and
a
matchindicator on each frame.
early exit
Return the index the moment `arr[i]` equals the target. Walking past it would defeat the point.
sentinel return
A no-match walk falls off the loop and returns `-1`.