cpp

Слайсы. Поиск минимального и максимального значений

Чтобы в слайсе найти минимальное значение следует присвоить переменной min значение первого элемента слайса, а затем произвести сравнение с остальными элементами. Если значение текущего элемента меньше значения переменной min, то присваиваем значение текущего элемента переменной min.

Чтобы найти максимальное значение следует присвоить переменной max значение первого элемента слайса, а затем произвести сравнение с остальными элементами. Если значение текущего элемента больше значения переменной max, то присваиваем значение текущего элемента переменной max.

Пример поиска минимального и максимального значения приведен в листинге 5.1.

Листинг 5.1. Поиск минимального и максимального значений

package main

import "fmt"

func main() {
   arr := []int{2, 5, 6, 1, 3}
   fmt.Println("min =", Min(arr))
   fmt.Println("max =", Max(arr))
   min, max := MinMax(arr)
   fmt.Println("min =", min)
   fmt.Println("max =", max)
}
func Min(arr []int) int {
   min := arr[0]
   for _, value := range arr {
      if value < min {
         min = value
      }
   }
   return min
}
func Max(arr []int) int {
   max := arr[0]
   for _, value := range arr {
      if value > max {
         max = value
      }
   }
   return max
}
func MinMax(arr []int) (int, int) {
   min := arr[0]
   max := arr[0]
   for _, value := range arr {
      if value < min {
         min = value
      }
      if value > max {
         max = value
      }
   }
   return min, max
}

В этом примере мы создали три функции: Min(), Max() и MinMax(). Функции принимают слайс. Внутри функции Min() выполняется поиск минимального значения, а внутри функции Max() — максимального значения. Найденные значения функции возвращают с помощью оператора return. Как только внутри функции встречается оператор return или поток доходит до конца блока функции, управление передается в место вызова функции. При этом становится доступно значение, указанное в операторе return.

Функция MinMax() выполняет поиск и минимального значения, и максимального значения слайса одновременно. Обратите внимание, внутри функции с помощью оператора return мы возвращаем сразу два значения через запятую. В языке Go это нормальная ситуация.

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

Помощь сайту

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

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

cpp