Programming Language/Go
Golang Algorithm - binary search 이진 탐색
Yongari
2023. 2. 10. 22:53
이진 탐색은 검색할 데이터의 양을 지속적으로 줄임으로써 검색어가 발견되는 속도를 높임으로써 목록 내의 요소를 찾는 데 사용되는 탐색 전략입니다. 이진 탐색 알고리즘을 사용하려면 작동할 목록이 이미 정렬되어 있어야 합니다.
package main
import "fmt"
func binarySearch(needle int, haystack []int) bool {
low := 0
high := len(haystack) - 1
for low <= high{
median := (low + high) / 2
if haystack[median] < needle {
low = median + 1
}else{
high = median - 1
}
}
if low == len(haystack) || haystack[low] != needle {
return false
}
return true
}
func main(){
items := []int{1,2, 9, 20, 31, 45, 63, 70, 100}
fmt.Println(binarySearch(63, items))
}