sort 包中的二分查找

Deb*_*was 0 sorting algorithm binary-search go

我正在查看 Gosort包中的这个函数” func SearchInts(a []int, x int) int,并且好奇是否有一种直接的方法来识别切片中是否存在元素?

在 Java Arrays.binarySearch(..) 中,仅返回负值。我很好奇 golang 的 api 是否func SearchInts(a []int, x int)报告 x 不存在?不确定为什么func SearchInts(a []int, x int)不返回两个值(index,isPresent)

Bur*_*dar 5

您可以简单地检查:

i := sort.SearchInts(slice, value)
if i<len(slice) && slice[i]==value {
   // It exists
}
Run Code Online (Sandbox Code Playgroud)