상세 컨텐츠

본문 제목

Golang Algorithm - binary search 이진 탐색

Programming Language/Go

by 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))
}

관련글 더보기