• Golang实现二分查找


    二分查找的思想:拿到有序数组的首尾下标,然后取中间值跟需要查找的值对比,如果中间值等于查找值则返回下标,如果中间值大于查找值则继续查找左边区块,如果中间值小于查找值则继续查找左边区块,如果查找不到则返回-1,查找结束。

    package main
    
    import "fmt"
    
    func binarySearch(arr []int, value int) int {
        first, last := 0, len(arr) - 1
        var min int
        for first <= last {
            min = int((first + last)/2)
            if arr[min] == value {
                return min
            } else if arr[min] > value {
                last = min -1
            } else {
                first = min + 1
            }
        }
        return -1
    }
    
    func main(){
        a := []int{1,2,3,4,5,6,7}
        key := binarySearch(a, 2)
        fmt.Println(a[key])
    }
  • 相关阅读:
    WAMP Apache 2.5 配置虚拟主机
    DOM对象
    BOM对象
    JS内置对象
    CSS定位
    CSS浮动和清除
    浏览器兼容性
    垂直居中
    水平居中总结
    长度值
  • 原文地址:https://www.cnblogs.com/hardykay/p/14600353.html
Copyright © 2020-2023  润新知