go binary search

chacha·2020년 7월 24일
0

go알고리즘

목록 보기
7/8

source

package main

import "fmt"

func main() {
	var test = []int{2, 3, 4, 6, 7}

	fmt.Println(binarySearch(test, 5))
	fmt.Println(binarySearch(test, 3))
}

func binarySearch(array []int, target int) bool {

	count := len(array)

	if count == 1 && array[0] == target {
		return true
	}
	if count == 1 && array[0] != target {
		return false
	} //#1

	var medium = array[count/2] //#2
	//fmt.Println(array,medium)
	if medium < target { //#3
		return binarySearch(array[count/2:], target)
	} else if medium > target {
		return binarySearch(array[:count/2], target)
	} else if medium == target {
		return true
	}

	return false
}

output

false
true
profile
안녕하세요~ :)

0개의 댓글