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

Функция slices.IsSortedFunc

Функция slices.IsSortedFunc проверяет, отсортирован ли слайс в порядке возрастания согласно пользовательской функции сравнения. Она возвращает true, если слайс отсортирован, и false в противном случае. Первым параметром функция принимает слайс для проверки, вторым - функцию сравнения, которая должна возвращать отрицательное число, если первый элемент меньше второго, положительное, если больше, и ноль, если элементы равны.

Синтаксис

slices.IsSortedFunc(slice, cmp)

Пример

Давайте проверим, отсортирован ли слайс целых чисел в порядке возрастания с помощью пользовательской функции сравнения:

package main import ( "fmt" "slices" ) func main() { numbers := []int{1, 2, 3, 4, 5} cmp := func(a, b int) int { return a - b } res := slices.IsSortedFunc(numbers, cmp) fmt.Println(res) }

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

true

Пример

Давайте проверим, отсортирован ли слайс строк в порядке возрастания (лексикографическом) с использованием функции strings.Compare:

package main import ( "fmt" "slices" "strings" ) func main() { words := []string{"a", "b", "c", "d", "e"} res := slices.IsSortedFunc(words, strings.Compare) fmt.Println(res) }

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

true

Пример

Давайте проверим, отсортирован ли слайс в порядке убывания, используя пользовательскую функцию сравнения:

package main import ( "fmt" "slices" ) func main() { numbers := []int{5, 4, 3, 2, 1} cmp := func(a, b int) int { return b - a } res := slices.IsSortedFunc(numbers, cmp) fmt.Println(res) }

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

true

Пример

Давайте проверим, отсортирован ли слайс структур по полю с помощью пользовательской функции:

package main import ( "fmt" "slices" ) type Person struct { Name string Age int } func main() { people := []Person{ {"Alice", 25}, {"Bob", 30}, {"Charlie", 35}, } cmp := func(a, b Person) int { return a.Age - b.Age } res := slices.IsSortedFunc(people, cmp) fmt.Println(res) }

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

true

Пример

Давайте проверим неотсортированный слайс с пользовательской функцией сравнения:

package main import ( "fmt" "slices" ) func main() { numbers := []int{1, 3, 2, 4, 5} cmp := func(a, b int) int { return a - b } res := slices.IsSortedFunc(numbers, cmp) fmt.Println(res) }

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

false

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

  • функцию slices.IsSorted,
    которая проверяет отсортированность слайса со стандартным сравнением
  • функцию slices.SortFunc,
    которая сортирует слайс с пользовательской функцией сравнения
  • функцию slices.SortStableFunc,
    которая стабильно сортирует слайс с пользовательской функцией сравнения
  • функцию slices.CompareFunc,
    которая сравнивает два слайса с использованием пользовательской функции сравнения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить