男儿欲遂平生志,六经勤向窗前读。这篇文章主要讲述Go 语言入门很简单:sort 中的sortInts 方法相关的知识,希望能为你提供帮助。
从有序数据中查找值我们知道,常见查找算法有顺序查找和二分查找。而二分查找就是基于有序数据的查找方法。而 Go 语言中的 ??sort?
? 包就提供了以下几种查找的方法:
- SearchInts(slice ,val)
- SearchFloats(slice, val)
- SearchStrings(slice, val)
- Searh(count, testFunc)
?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 := []int2025, 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 := []int10, 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 方法)】
推荐阅读
- flask项目跨域拦截处理以及dbm数据库学习包头文创网站开发
- 云原生DaaS服务—大数据服务
- 现在大多数人们用的前端框架有哪些大盘点
- DevOps: 每个阶段最常用的工具有哪些()
- 进程间通信(IPC)
- SynchronousQueue 源码解析
- 浅析Win8系统的那些鲜为人知的技巧
- Win8系统还原初始化技巧介绍
- Win8文件资源管理器中常用位置的清除办法