cpp

Проверка наличия значения в массиве

Выполнить поиск элемента внутри отсортированного массива позволяет функция Search() из пакета sort. Формат функции:

sort.Search(n int, f func(int) bool) int

В первом параметре функция принимает число элементов массива, а во втором — функцию сравнения. Возвращает позицию вставки элемента в отсортированный массив. Обратите внимание: чтобы убедиться в наличии элемента нужно выполнить дополнительную проверку. Пример:

arr := [5]int{10, 5, 6, 1, 3}
// Сортируем массив по возрастанию
// import "sort"
sort.Ints(arr[:])
fmt.Println(arr)   // [1 3 5 6 10]
// Производим поиск
key := 3
index := sort.Search(len(arr), func(i int) bool {
   return arr[i] >= key
})                 // Есть элемент
fmt.Println(index) // 1
// Проверяем найден ли элемент
if index < len(arr) && arr[index] == key {
   fmt.Println("Элемент найден. Индекс", index)
} else {
   fmt.Println("Элемент не найден")
}
index = sort.Search(len(arr), func(i int) bool {
   return arr[i] >= 2
})                 // Нет элемента
fmt.Println(index) // 1 (место вставки)
index = sort.Search(len(arr), func(i int) bool {
   return arr[i] >= 11
})                 // Нет элемента
fmt.Println(index) // 5 (len(arr))

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp