Golang ort 中的sortInts 方法


Posted in Golang onApril 24, 2022

前言:

排序算法一直是很经常使用的功能。Go 语言标准库为我们提供了方便快捷的 ​​sort​​ 包 ,这个包实现了四种基本排序算法:插入排序、归并排序、堆排序和快速排序。

一、从有序数据中查找值

我们知道,常见查找算法有顺序查找和二分查找。而二分查找就是基于有序数据的查找方法。而 Go 语言中的 ​​sort​​ 包就提供了以下几种查找的方法:

  • SearchInts(slice ,val)
  • SearchFloats(slice, val)
  • SearchStrings(slice, val)
  • Searh(count, testFunc)

二、SearchInts

​SearchInts()​​ 函数是 sort 包的内置函数,用于在排序的整数切片中搜索给定元素 ​​x​​,并返回 ​​Search()​​ 指定的索引。

它接受两个参数(​​a []int, x int​​):

  • a 是 int 类型的排序切片,
  • x 是要搜索的 int 类型元素,并返回​​Search()​​ 指定的索引

注意:如果 ​​x​​ 不存在,可能是 ​​len(a)​​,​​SearchInts()​​ 结果是插入元素 ​​x​​ 的索引。切片必须按升序排序。

语法结构如下:

func SearchInts(a []int, x int) int

返回值: ​​SearchInts()​​ 函数的返回类型是 int,它返回 Search 指定的索引。

三、举例

例子一:

package main

import (
"fmt"
"sort"
)

func main() {

ints := []int{2025, 2019, 2012, 2002, 2022}

sortInts := make([]int, len(ints))

copy(sortInts, ints)

sort.Ints(sortInts)

fmt.Println("Ints: ", ints)
fmt.Println("Ints Sorted: ", sortInts)

indexOf2022 := sort.SearchInts(sortInts, 2022)
fmt.Println("Index of 2022: ", indexOf2022)
}

运行该代码:

$ go run main.go
Ints: [2025 2019 2012 2002 2022]
Ints Sorted: [2002 2012 2019 2022 2025]
Index of 2022: 3

例子二:

package main

import (
"fmt"
"sort"
)

func main() {
a := []int{10, 20, 25, 27, 30}

x := 25
i := sort.SearchInts(a, x)
fmt.Printf("Element %d found at index %d in %v\n", x, i, a)

x = 5
i = sort.SearchInts(a, x)
fmt.Printf("Element %d not found, it can inserted at index %d in %v\n", x, i, a)

x = 40
i = sort.SearchInts(a, x)
fmt.Printf("Element %d not found, it can inserted at index %d in %v\n", x, i, a)
}

运行结果:

Element 25 found at index 2 in [10 20 25 27 30]
Element 5 not found, it can inserted at index 0 in [10 20 25 27 30]
Element 40 not found, it can inserted at index 5 in [10 20 25 27 30]

到此这篇关于Go 语言sort 中的sortInts 方法的文章就介绍到这了!


Tags in this post...

Golang 相关文章推荐
golang判断key是否在map中的代码
Apr 24 Golang
go语言-在mac下brew升级golang
Apr 25 Golang
golang如何去除多余空白字符(含制表符)
Apr 25 Golang
golang中的并发和并行
May 08 Golang
go web 预防跨站脚本的实现方式
Jun 11 Golang
go语言使用Casbin实现角色的权限控制
Jun 26 Golang
详解Go语言Slice作为函数参数的使用
Jul 02 Golang
K8s部署发布Golang应用程序的实现方法
Jul 16 Golang
golang 语言中错误处理机制
Aug 30 Golang
如何解决goland,idea全局搜索快捷键失效问题
Apr 03 Golang
Golang ort 中的sortInts 方法
Apr 24 Golang
Go gorilla securecookie库的安装使用详解
Aug 14 Golang
Golang 切片(Slice)实现增删改查
Apr 22 #Golang
Golang 结构体数据集合
Apr 22 #Golang
Golang map映射的用法
Apr 22 #Golang
Golang bufio详细讲解
Apr 21 #Golang
Go获取两个时区的时间差
Apr 20 #Golang
Golang jwt身份认证
实现GO语言对数组切片去重
Apr 20 #Golang
You might like
用PHP连接MySQL代码的参数说明
2008/06/07 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
js实现音乐播放控制条
2017/09/09 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
Django实现文件上传下载
2019/10/06 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
物流创业计划书
2014/02/01 职场文书
《王二小》教学反思
2014/02/27 职场文书
个人考核材料
2014/05/15 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Python装饰器详细介绍
2022/03/25 Python