首页 > 编程语言 >算法 in Go:Binary Search(二分查找)

算法 in Go:Binary Search(二分查找)

时间:2023-06-05 22:55:18浏览次数:58  
标签:二分 Binary Search via _____________________________ rand 索引 查找 Go

算法 in Go:Binary Search(二分查找)

Binary Search(二分查找)

Binary Search(二分查找)

  • 猜数
  • 1、2、3、4、5、6、7、8
  • 排好序一个集合,先从中间开始猜,根据提示就可以排除一半,在剩余的一半里,再从中间开始猜,依此类推,这就是二分查找。

Binary Search(二分查找)接收什么参数,返回什么值

  • 输入:排好序的集合
  • 如果要查找的元素在集合中:返回位置(索引)
  • 否则:返回空

Binary Search(二分查找)其它查找方式

  • 如果查找?
  • [1,2,3,4,5,...56,57,58...98,99,100]
  • 顺序的简单查找(simple search)
  • 更好的办法:从中间开始,每次都能排除一半的元素,这叫二分查找
  • [1,2,3,4,5...98,99.100],查找任何一个元素,最多只需要7步
  • [1,2,3,4,5...239998,239999,240000]
    • 二分查找,最多只需要 18步
    • 简单查找,最多需要 24 万步
  • 针对拥有 n 哥元素的已排序集合:
    • 二分查找:log2^n
    • 简单查找:n

注意

  • 二分查找只适用于已排序的集合

创建项目

~/Code/go via 

标签:二分,Binary,Search,via,_____________________________,rand,索引,查找,Go
From: https://www.cnblogs.com/QiaoPengjun/p/17459195.html

相关文章

  • Elastic_Search 和java的入门结合
    1,pom文件添加依赖... 2,config配置文件  3,写接口文件 ......
  • Golang高性能编程--slice的学习总结
    在go语言中,数组变量属于值类型,因此当一个数组变量被复制或者传递时,实际上会复制整个数组。eg,将a赋值给b,修改a中的元素,并不会修改b中的元素。为了避免复制数组,一般会传递指向数组的指针。packagemainimport"fmt"funcmain(){ a:=[...]int{1,2,3} b:=a a[0]=100......
  • 在DevExpress的GridView的列中,使用RepositoryItemSearchLookUpEdit控件实现产品列表信
    有时候,我们为了方便,我们往往使用扩展函数的代码方式创建很多GridView的操作功能,如在随笔《在DevExpress中使用BandedGridView表格实现多行表头的处理》中介绍过多行表头的创建及绑定处理,在《基于DevExpress的GridControl实现的一些界面处理功能》也介绍了一些特殊的展示效果,本篇随......
  • pymysql,pymongo链接实例
    pymysqlconn=pymysql.connect(host=dbhost,#数据库地址port=3306,#数据库端口号user='testpymysql',#数据库账号password='afk!cTRnDnVq*bvZ'#数据库密码)cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)#字典形式sql=......
  • go map gc的测试代码
    **本文章由githubcopilot协助生成**遇到一个离职同事写的代码,如下:```gopackagemapGCfuncmapGc(){lock:=sync.Mutex{}gofunc(){for{time.Sleep(12*time.Hour)tmp:=make(map[string]interface{})lo......
  • Leangoo领歌Scrum工具实施多团队规模化敏捷Scrum of Scrums
    ​多团队大规模敏捷的场景定义:多个敏捷团队开发同一个大型产品,几十人,甚至几百人开发一个产品或解决方案。在Leangoo领歌中创建多团队大规模敏捷项目:多团队规模化敏捷的项目结构: 在Leangoo企业中创建项目,项目类型选择“敏捷开发”,项目模板选择“多团队大规模敏捷开发”。创......
  • 【IDE】Chrome 在其他机器登陆 Google 账号,没有退出,怎么及时保证账号及数据安全?
    Chrome浏览器,再配合Google账号,确实给我们带来了很多方便比如:书签同步,扩展插件同步,数据同步但是,当我们在别人的机器上登录Google账号后,如何及时保障账号安全呢?有人说,这有什么担心的?是,正常来说我们不需要操这份心。就怕碰到极端的人,或者别人的误操作,导致我们Google账号的......
  • 传奇开服架设教程--GeeM2与GomM2引擎通用假人脚本
    开新区注意事项:1、新区无任何玩家数据下可以运行“MirServer\假人行会初始化”目录下的“点我初始化假人行会.Bat”程序2、默认假人后台管理密码为:www.idc02.com假人修改说明:市面上的版本千变万化,不可能统一全部数据,以下就是可以随版本修改的自定义假人假人等级,装备修改路径:“Mir......
  • go语言切片
    特性长度可变、内容可变、引用类型、底层基于数组定义vars1[]int//长度、容量为0的切片,零值vars2=[]int{}//长度、容量为0的切片,字面量定义vars3=[]int{1,3,5}//字面量定义,长度、容量都是3vars4=make([]int,0)//长......
  • Java建造者模式,用代码体验LEGO的快乐
    前言本文主要讲述Java设计模式中的建造者模式,文中使用通俗易懂的案例,使你更好的学习本章知识点并理解原理,做到有道无术。一.什么是建造者模式建造者模式是23种设计模式中创建型模式的一种,它关注的是对象创建的步骤,将一个复杂的对象抽象出来,一步步地把一个复杂的对象创建出来。......