算法代码实现之二分法查找,Golang(Go语言)实现
来源:互联网 发布:网络直销公司有哪些 编辑:程序博客网 时间:2024/06/04 18:48
封装成函数:
//二分法查找
//切片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
1 0
- 算法代码实现之二分法查找,Golang(Go语言)实现
- 算法代码实现之冒泡排序,Golang(Go语言)实现
- 算法代码实现之选择排序,Golang(Go语言)实现
- 算法代码实现之插入排序,Golang(Go语言)实现
- 算法代码实现之希尔排序,Golang(Go语言)实现
- 算法代码实现之快速排序,Golang(Go语言)实现
- 算法代码实现之堆排序,Golang(Go语言)实现
- Go实现二分法查找
- 算法代码实现之三向切分快速排序,Golang(Go语言)实现
- 求两圆交点算法代码实现(Golang/Go语言)
- 算法代码实现之二分法查找,Java实现
- 算法代码实现之二分法查找,C/C++实现
- 算法代码实现之归并排序,Golang(Go语言)实现,自顶向下与自底向上两种方式
- 二分法查找(C语言实现)
- C语言实现二分法查找
- 二分法查找C语言实现
- 算法代码实现之Union-Find,Golang(Go语言)实现,quick-find、quick-union、加权quick-union(附带路径压缩优化)
- 算法代码实现之选出第k小元素、中位数、最小的k个元素(线性复杂度),Golang(Go语言)实现
- HashMap实现原理分析
- FZU2088 最长队名
- 使用零碎时间提升自己
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- 牛逼的jar查看源码器
- 算法代码实现之二分法查找,Golang(Go语言)实现
- git 基本操作
- Android开发中在JAVA中调用C/C++ native代码
- HDU 2700 Parity [Ad Hoc]
- FZU2089 数字游戏
- 自定义字体样式
- TIJ-第一章:对象介绍
- git报错 gitois报错
- ant脚本打包入门