Golang Sort: методы и примеры сортировки в Go

«Сортировка Golang» относится к функциям сортировки, предоставляемым языком программирования Go. Go имеет встроенный пакет под названием «sort», который предлагает различные методы сортировки срезов и пользовательских коллекций. Ниже приведены некоторые часто используемые методы сортировки и примеры кода:

  1. sort.Ints: этот метод сортирует фрагмент целых чисел в порядке возрастания.

    package main
    import (
    "fmt"
    "sort"
    )
    func main() {
    numbers := []int{5, 2, 8, 3, 1}
    sort.Ints(numbers)
    fmt.Println(numbers)
    }
  2. sort.Strings: этот метод сортирует фрагмент строк в лексикографическом (словарном) порядке.

    package main
    import (
    "fmt"
    "sort"
    )
    func main() {
    names := []string{"Alice", "Charlie", "Bob"}
    sort.Strings(names)
    fmt.Println(names)
    }
  3. sort.Float64s: этот метод сортирует фрагмент чисел float64 в порядке возрастания.

    package main
    import (
    "fmt"
    "sort"
    )
    func main() {
    grades := []float64{85.5, 92.0, 78.3, 89.1}
    sort.Float64s(grades)
    fmt.Println(grades)
    }
  4. sort.Reverse: этот метод позволяет изменить порядок существующей реализации sort.Interface. Это полезно для сортировки по убыванию.

    package main
    import (
    "fmt"
    "sort"
    )
    type Person struct {
    Name string
    Age  int
    }
    type ByAge []Person
    func (a ByAge) Len() int           { return len(a) }
    func (a ByAge) Less(i, j int) bool { return a[i].Age < a[j].Age }
    func (a ByAge) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
    func main() {
    people := []Person{
        {Name: "Alice", Age: 25},
        {Name: "Bob", Age: 30},
        {Name: "Charlie", Age: 20},
    }
    sort.Sort(sort.Reverse(ByAge(people)))
    fmt.Println(people)
    }