package main
import "fmt"
func linearSearch(arr []int, target int) int {
for i, val := range arr {
if val == target {
return i
}
}
return -1
}
func binarySearch(arr []int, target int) int {
left, right := 0, len(arr)-1
for left <= right {
mid := left + (right-left)/2
if arr[mid] == target {
return mid
} else if arr[mid] < target {
left = mid + 1
} else {
right = mid - 1
}
}
return -1
}
func main() {
arr := []int{1, 3, 5, 7, 9, 11, 13, 15}
target := 9
linearIndex := linearSearch(arr, target)
fmt.Printf("Linear Search found %d at index %d\n", target, linearIndex)
binaryIndex := binarySearch(arr, target)
fmt.Printf("Binary Search found %d at index %d\n", target, binaryIndex)
}
for i, val := range arr { if val == target { return i } }
check each element one by one until target found
left, right := 0, len(arr)-1
initialize search boundaries for binary search
mid := left + (right-left)/2
find middle index to check
if arr[mid] == target { return mid } else if arr[mid] < target { left = mid + 1 } else { right = mid - 1 }
compare middle value and adjust search range accordingly
Linear Search found 9 at index 4
Binary Search found 9 at index 4