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

二分法查找(golang实现)

作者: imroc | 来源:发表于2017-09-03 14:50 被阅读0次

封装成函数:

//二分法查找
//切片s是升序的
//k为待查找的整数
//如果查到有就返回对应角标,
//没有就返回-1
func BinarySearch(s []int, k int) int {
    lo, hi := 0, len(s)-1
    for lo <= hi {
        m := (lo + hi) >> 1
        if s[m] < k {
            lo = m + 1
        } else if s[m] > k {
            hi = m - 1
        } else {
            return m
        }
    }
    return -1
}

测试:

s := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(BinarySearch(s, 6))

输出:
6

相关文章

  • golang循环递增数组查找值

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

  • 刷前端面经笔记(九)

    1.JavaScript实现二分法查找? 二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找...

  • PHP中实现二分法查找的两种方法

    php实现二分法的查找其实很简单,跟我一起来看看怎么实现吧。 二分法查找需要数组是一个递增的数组。 想要写出二分法...

  • 二分法查找(golang实现)

    封装成函数: 测试: 输出:6

  • 二分法查找

    二分法查找效率高,其查找次数与总元素数量存在对数关系 原理在进行二分法查找前需要先对数据进行排序(具体排序实现详见...

  • 二分法查找

    二分法基本查找 二分法遍历查找

  • 常见算法的 Python 实现

    二分法查找 非递归版本: 递归方法实现: 冒泡排序 选择排序

  • 二分法查找

    二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法...

  • Java 面试系列:算法常用面试题汇总

    1.说一下什么是二分法?使用二分法时需要注意什么?如何用代码实现? 二分法查找(Binary Search)也称折...

  • 数据结构-递归

    二分法查找

网友评论

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

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