РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
251 of 1593 menu

Функция sort.SearchInts

Функция sort.SearchInts выполняет бинарный поиск заданного числа в отсортированном слайсе целых чисел. В первый параметр передается слайс []int, во второй - искомое значение int. Функция возвращает индекс найденного элемента. Если элемент не найден, возвращается индекс, по которому его нужно вставить для сохранения порядка сортировки.

Синтаксис

sort.SearchInts(slice, value)

Пример

Давайте найдем число 3 в отсортированном слайсе:

package main import ( "fmt" "sort" ) func main() { nums := []int{1, 2, 3, 4, 5} res := sort.SearchInts(nums, 3) fmt.Println(res) }

Результат выполнения кода:

2

Пример

Попробуем найти число, которого нет в слайсе:

package main import ( "fmt" "sort" ) func main() { nums := []int{1, 2, 4, 5, 6} res := sort.SearchInts(nums, 3) fmt.Println(res) }

Результат выполнения кода:

2

Функция вернула индекс 2, куда нужно вставить число 3, чтобы слайс остался отсортированным.

Пример

Если искомое значение меньше всех элементов слайса, функция вернет 0:

package main import ( "fmt" "sort" ) func main() { nums := []int{5, 6, 7, 8, 9} res := sort.SearchInts(nums, 1) fmt.Println(res) }

Результат выполнения кода:

0

Пример

Если искомое значение больше всех элементов слайса, функция вернет длину слайса:

package main import ( "fmt" "sort" ) func main() { nums := []int{1, 2, 3, 4, 5} res := sort.SearchInts(nums, 10) fmt.Println(res) }

Результат выполнения кода:

5

Пример

Важно, что слайс должен быть отсортирован по возрастанию. Если передать несортированный слайс, результат будет непредсказуемым:

package main import ( "fmt" "sort" ) func main() { nums := []int{5, 1, 4, 2, 3} res := sort.SearchInts(nums, 2) fmt.Println(res) }

Результат выполнения кода:

4

Хотя число 2 находится в слайсе, функция вернула индекс 4, так как слайс не был отсортирован.

Смотрите также

  • функцию sort.Search,
    которая выполняет бинарный поиск с пользовательской функцией сравнения
  • функцию sort.SearchFloat64s,
    которая ищет число с плавающей точкой в отсортированном слайсе
  • функцию sort.SearchStrings,
    которая ищет строку в отсортированном слайсе строк
  • функцию sort.Ints,
    которая сортирует слайс целых чисел по возрастанию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить