Функция sort.SearchFloat64s

Функция sort.SearchFloat64s выполняет бинарный поиск числа x в отсортированном слайсе чисел с плавающей точкой. Она возвращает индекс позиции, куда нужно вставить x для сохранения порядка сортировки. Если число найдено, возвращается его индекс, иначе возвращается индекс, по которому число должно быть вставлено. Первым параметром функция принимает слайс []float64, вторым - искомое число float64.

Синтаксис

gosort.SearchFloat64s(slice, x)

Пример

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

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  numbers := []float64{1.2, 3.4, 5.5, 7.8, 9.1}
  x := 5.5
  index := sort.SearchFloat64s(numbers, x)
  fmt.Printf("Found %v at index %v\n", x, index)
}

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

go"Found 5.5 at index 2"

Пример

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

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  numbers := []float64{1.2, 3.4, 5.5, 7.8, 9.1}
  x := 6.0
  index := sort.SearchFloat64s(numbers, x)
  fmt.Printf("Insert %v at index %v\n", x, index)
}

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

go"Insert 6 at index 3"

Пример

Давайте найдем число, которое находится в начале слайса:

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  numbers := []float64{1.2, 3.4, 5.5, 7.8, 9.1}
  x := 1.2
  index := sort.SearchFloat64s(numbers, x)
  fmt.Printf("Found %v at index %v\n", x, index)
}

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

go"Found 1.2 at index 0"

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

  • функцию sort.SearchInts,
    которая выполняет поиск в слайсе целых чисел
  • функцию sort.SearchStrings,
    которая выполняет поиск в слайсе строк
  • функцию sort.Float64sAreSorted,
    которая проверяет, отсортирован ли слайс чисел с плавающей точкой
  • функцию sort.Float64s,
    которая сортирует слайс чисел с плавающей точкой по возрастанию