Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,879 questions

51,805 answers

573 users

How to implement binary search algorithm in Go

3 Answers

0 votes
package main

import "fmt"

func binarySearch(arr []int, value int) int {
    low := 0
    high := len(arr) - 1
    
    for low <= high {
        mid := (low + high) / 2
        if arr[mid] > value {
            high = mid - 1
        } else if arr[mid] < value {
            low = mid + 1
        } else {
            return mid
        }
    }
    
    return -1
}

func main() {
    arr := []int{0, 4, 5, 7, 8, 19, 20, 23, 27}
    
    fmt.Printf("%d", binarySearch(arr, 5))
}




/*
run:

2

*/

 



answered Dec 20, 2022 by avibootz
0 votes
package main

import "fmt"

func binarySearch(arr []int, value int, low int, high int) int {
    if high < low {
        return -1
    }
    
    mid := (low + high) / 2
    
    if arr[mid] > value {
        return binarySearch(arr, value, low, mid - 1)
    } else if arr[mid] < value {
        return binarySearch(arr, value, mid + 1, high)
    }
    
    return mid
}


func main() {
    arr := []int{0, 4, 5, 7, 8, 19, 20, 23, 27}
    
    fmt.Printf("%d", binarySearch(arr, 5, 0, 9))
}




/*
run:

2

*/

 



answered Dec 20, 2022 by avibootz
0 votes
package main

import (
    "fmt"
)

func binarySearch(array []int, element, low, high int) int {
    for low <= high {
        mid := low + (high - low) / 2

        if array[mid] == element {
            return mid
        }

        if array[mid] < element {
            low = mid + 1
        } else {
            high = mid - 1
        }
    }

    return -1
}

func main() {
    array := []int{3, 4, 8, 9, 10, 17, 21, 28, 33, 36, 42}
    numberToFind := 21

    index := binarySearch(array, numberToFind, 0, len(array) - 1)

    if index == -1 {
        fmt.Println("Not found")
    } else {
        fmt.Printf("Found at index: %d\n", index)
    }
}




/*
run:
   
Found at index: 6
  
*/

 



answered Dec 13, 2024 by avibootz

Related questions

1 answer 89 views
1 answer 198 views
1 answer 77 views
1 answer 93 views
1 answer 86 views
1 answer 73 views
...