Write a Golang program to search an element in a sorted array


Approach to solve this problem

  • Step 1: Iterate the array from the 0th index to n-1, where n is the size of the given array.
  • Step 2: Declare low=0th index and high=n-1. Start a for loop till low is lesser than high.
  • Step 3: Find mid=(low+high)/2, if the element at the middle is equal to key, then return mid index.
  • Step 4: If the element at mid is greater than the key, then make high = mid.
  • Step 5: If the element at mid is lesser than the key, then make low = mid + 1.
  • Step 6: If key is not present in the given array, then return -1.

Time Complexity: log2(n)

Program

Live Demo

package main
import "fmt"
func binarySearch(arr []int, key int) int{
   high := len(arr) - 1
   low := 0
   var mid int
   for low <= high {
      mid = (high+low)/2
      if arr[mid] == key {
         return mid
      } else if arr[mid] > key {
         high = mid
      } else {
         low = mid + 1
      }
   }
   return -1
}

func main(){
   fmt.Println(binarySearch([]int{1, 4, 6, 8, 9, 10}, 11))
   fmt.Println(binarySearch([]int{1, 4, 6, 8, 9, 10}, 8))
   fmt.Println(binarySearch([]int{1, 4, 6, 8, 9, 10}, 10))
}

Output

-1
3
5

Updated on: 04-Feb-2021

434 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements