GoLang: Binary Search Algorithm


Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1. You must write an algorithm with O(log n) runtime complexity.

Example 1:
Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4
Explanation: 9 exists in nums and its index is 4

Example 2:
Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
Explanation: 2 does not exist in nums so return -1

Binary Search Algorithm Implementation in GoLang

Using GoLang to search a number in an array of sorted numbers using Binary Search. The time complexity is O(LogN).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func search(nums []int, target int) int {
    var i, j = 0, len(nums) - 1
    for i <= j {
        var mid = i + (j - i) / 2
        if nums[mid] == target {
            return mid
        }
        if target > nums[mid] {
            i = mid + 1
        } else {
            j = mid - 1
        }
    }    
    return -1
}
func search(nums []int, target int) int {
    var i, j = 0, len(nums) - 1
    for i <= j {
        var mid = i + (j - i) / 2
        if nums[mid] == target {
            return mid
        }
        if target > nums[mid] {
            i = mid + 1
        } else {
            j = mid - 1
        }
    }    
    return -1
}

See other Binary Search algorithms:

–EOF (The Ultimate Computing & Technology Blog) —

GD Star Rating
loading...
267 words
Last Post: Teaching Kids Programming - Sign of the Product of an Array
Next Post: Backtracking Algorithm to Solve N Queens Puzzle (Partially Filled)

The Permanent URL is: GoLang: Binary Search Algorithm

Leave a Reply