首页 > 编程语言 >golang二分查找算法

golang二分查找算法

时间:2022-12-02 12:31:43浏览次数:37  
标签:二分 int lookingFor mid golang sortedArray 查找 low var

一、条件:一组数据要进行二分查找,那么这个要查找的元素是有序,并且是连续存放(数组)。这样才可以进行二分查找。在数据库主键查找,二分查找算法是底层算法原理。

二、下面用golang来实现二分算法

package main

import (
"fmt"
)

func main() {
var lookingFor int = 6
var sortedArray []int = []int{1, 3, 4, 6, 7, 9, 10, 11, 13, 14}
index := binarySearch(sortedArray, lookingFor)
fmt.Println("数组", sortedArray)
fmt.Println("要查找的索引", lookingFor)
if index >= 0 {
fmt.Println("找到索引:", index)
} else {
fmt.Println("没有找到数据!")
}
}

func binarySearch(sortedArray []int, lookingFor int) int {
var low int = 0
var high int = len(sortedArray) - 1
for low <= high {
//(high-low)/2向下取整
var mid int = low + (high-low)/2
//fmt.Printf("%f", mid)
var midValue int = sortedArray[mid]
if midValue == lookingFor {
return mid
} else if midValue > lookingFor {
high = mid - 1
} else {
low = mid + 1
}
}
return -1
}

golang二分查找算法_二分查找

标签:二分,int,lookingFor,mid,golang,sortedArray,查找,low,var
From: https://blog.51cto.com/wyf1226/5906906

相关文章

  • 8.golang语言学习,运算符介绍
    1.算术运算自增,自减,只能单独使用,++,--只能写在变量后面2.赋值运算符优先级,单目运算,赋值运算从右到左运算,其余从左到右,无三目运算,用if实现3.比较运算符/关系4.......
  • hdu棋盘游戏(二分图匹配)
    题目描述ProblemDescription小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限......
  • golang的jsonrpc客户端通用写法
    服务端packagemainimport( "errors" "fmt" "log" "net" "net/rpc" "net/rpc/jsonrpc" "os")//算数运算结构体typeArithstruct{}//算数运算请求结......
  • golang 模拟byte数组
    packagemainimport("fmt")typeBytes[]bytefuncmain(){ fmt.Println("hello") fmt.Println("--------------") //ascii字符=============================......
  • 一道阿里巴巴面试题--海量数据查找
    题目:面试官问,我们阿里巴巴公司收到了很多简历,比如说是百万级别的简历,你能不能设计一个算法,让我输入一个姓,程序输出所有这个姓的人,比如我输入张,输出是张三,张四等等设计思路: ......
  • 算法之二分查找
    1.二分查找:指的是通过找到中间值,用中间值和需要找的值作比较,在中间值的左右区间来判断需要寻找的值所在的位置。"""coding:utf-8@Software:PyCharm@Time:2022/12/116......
  • 前端基础——CSS(如何查找标签、如何添加样式)
    前端基础——CSS(如何查找标签、如何添加样式)一、CSS样式表/*主要用来调节html标签的各种样式思考:页面都是由HTML构成的并且页面上有很多相同的HTML标签但是相同的H......
  • 7.golang语言学习,标识符的命名规范
    1.凡是自己可以命名的都是标识符2.命名规则a.由26个英文字母,数字0-9,_组成b.不能数字开头c.严格区分大小写d.不能包含空格e.下划线”_“本身在go......
  • 二分图判定
    二分图的判定二分图的定义:若无向图\(G\)的所有节点可以划分为两个集合\(A,B\),若\(A,B\)均不为空且不存在一条边\((u,v)\)使得\(u,v\)属于同一集合,则称这个无向图为二分图......
  • 安装golang
    golang,本节目标为安装golang,并完成helloworld系统环境为win11,下载地址安装后检查版本PSC:\Users\pc>go.exeversiongoversiongo1.19.3windows/amd64设置国内......