美文网首页
golang实现二分查找

golang实现二分查找

作者: Simth | 来源:发表于2017-11-06 11:06 被阅读89次

一组数据要进行二分查找,那么这个要查找的元素是有序,并且是连续存放(数组)。这样才可以进行二分查找。

package main 
import (
    "fmt"
)
func main(){
    var lookingFor int = 6
    var sortedArray []int = []int{1, 3, 4, 6, 7, 9, 10, 11, 13}
    index := binarySearch(sortedArray, lookingFor)
    fmt.Println("the array", sortedArray)
    fmt.Println("the lookingFor", lookingFor)
    if index >= 0 {
        fmt.Println("Find the index:", index)
    } else {
        fmt.Println("Not Find the Data!")
    }
}

func binarySearch(sortedArray []int, lookingFor int) int {
    var low int = 0
    var high int = len(sortedArray) - 1
    for low <= high {
        var mid int =low + (high - low)/2
        var midValue int = sortedArray[mid]
        if midValue == lookingFor {
            return mid
        } else if midValue > lookingFor {
            high = mid -1
        } else {
            low = mid + 1
        }
    }
    return -1
}

相关文章

  • golang循环递增数组查找值

    循环递增数组查找值 golang 1.实现要求 在循环递增数组中查找某个值 2.实现方法 使用二分法实现查找 使用...

  • golang实现二分查找

    一组数据要进行二分查找,那么这个要查找的元素是有序,并且是连续存放(数组)。这样才可以进行二分查找。

  • 简单算法

    冒泡排序: while 实现的二分查找: 递归实现二分查找:

  • 算法之二分查找

    二分查找 二分查找是著名、高效并有应用广泛的查找算法。 二分常规实现 1.循环实现 下面我用python语言实现循...

  • 分治算法(swift二分法排序递归实现)

    二分查找 1、二分查找(Binary Search) 2、二分查找的基本思想 swift算法实现

  • 二分查找

    网上找到的图片便于理解 二分查找递归实现与循环实现代码: /** 二分查找 1.二分查找又称折半查找,它是一种效率...

  • 二分查找

    数据顺序存储,有序序列 O(logn) 递归实现二分查找: 非递归实现二分查找:

  • 算法 二分查找 (C++)

    二分查找的实现:

  • 数据结构与算法之美笔记——二分查找(下)

    摘要: 基础的二分查找算法无论是概念还是实现都比较简单(关于 二分查找基础实现文章 可点击此处查看),但二分查找存...

  • 算法4 读书笔记

    1.二分查找的迭代实现 #pragma warning(disable:4996) #include /*二分查找...

网友评论

      本文标题:golang实现二分查找

      本文链接:https://www.haomeiwen.com/subject/mcakmxtx.html