Функция sort.SearchStrings
Функция sort.SearchStrings выполняет бинарный поиск заданной строки в отсортированном слайсе строк. В первый параметр мы передаем отсортированный слайс строк, во второй параметр мы передаем строку, которую нужно найти. Функция возвращает индекс позиции, куда следует вставить искомую строку, чтобы сохранить порядок сортировки. Если строка найдена, возвращается ее фактический индекс, в противном случае возвращается индекс, по которому она должна быть вставлена.
Синтаксис
sort.SearchStrings(slice []string, x string) int
Пример 'Поиск существующей строки'
Давайте найдем строку 'c' в отсортированном слайсе:
package main
import (
"fmt"
"sort"
)
func main() {
slice := []string{"a", "b", "c", "d", "e"}
index := sort.SearchStrings(slice, "c")
fmt.Println(index)
}
Результат выполнения кода:
2
Пример 'Поиск отсутствующей строки'
Давайте попробуем найти строку, которой нет в слайсе:
package main
import (
"fmt"
"sort"
)
func main() {
slice := []string{"a", "b", "d", "e"}
index := sort.SearchStrings(slice, "c")
fmt.Println(index)
}
Результат выполнения кода:
2
В данном случае строка 'c' не найдена, но функция возвращает индекс 2, указывающий на позицию, куда ее следует вставить для сохранения порядка.
Пример 'Поиск в пустом слайсе'
Давайте проверим поведение функции на пустом слайсе:
package main
import (
"fmt"
"sort"
)
func main() {
slice := []string{}
index := sort.SearchStrings(slice, "a")
fmt.Println(index)
}
Результат выполнения кода:
0
Смотрите также
-
функцию
sort.SearchInts,
которая выполняет бинарный поиск целого числа в отсортированном слайсе -
функцию
sort.SearchFloat64s,
которая выполняет бинарный поиск числа с плавающей точкой в отсортированном слайсе -
функцию
sort.Search,
которая выполняет бинарный поиск с пользовательской функцией сравнения -
функцию
slices.BinarySearch,
которая выполняет бинарный поиск в отсортированном слайсе с возвратом найденного статуса