首頁  >  文章  >  後端開發  >  sort 包中的二分查找

sort 包中的二分查找

WBOY
WBOY轉載
2024-02-09 12:24:09897瀏覽

sort 包中的二分查找

php小編草莓在這篇文章中將向大家介紹sort套件中的二分查找演算法。二分查找是一種高效率的查找演算法,它適用於有序數組中查找特定元素的場景。透過將陣列不斷分成兩部分,並與目標元素進行比較,我們可以快速確定目標元素的位置。此演算法的時間複雜度為O(log n),比線性查找更有效率。在本文中,我們將詳細說明二分查找演算法的實作原理和步驟,幫助大家更能理解並應用這個演算法。

問題內容

我正在Go sort套件中查看這個函數「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)

解決方法

您可以簡單地檢查:

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

以上是sort 包中的二分查找的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除