Функция sort.Float64s

Функция sort.Float64s из пакета sort сортирует срез значений типа float64 в порядке возрастания. Она изменяет переданный срез на месте, поэтому дополнительной памяти не требуется. В единственный параметр функция принимает срез чисел с плавающей точкой, который будет отсортирован.

Синтаксис

gosort.Float64s(slice []float64)

Пример

Отсортируем срез чисел с плавающей точкой по возрастанию:

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  numbers := []float64{3.5, 1.2, 4.8, 2.1, 0.9}
  sort.Float64s(numbers)
  fmt.Println(numbers)
}

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

go[0.9 1.2 2.1 3.5 4.8]

Пример

Проверим работу функции на срезе с отрицательными и нулевыми значениями:

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  numbers := []float64{-2.5, 0.0, 1.5, -1.0, 3.0}
  sort.Float64s(numbers)
  fmt.Println(numbers)
}

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

go[-2.5 -1 0 1.5 3]

Пример

Функция sort.Float64s изменяет исходный срез, поэтому создадим копию, если нужно сохранить оригинальный порядок:

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  original := []float64{7.1, 2.3, 5.6, 1.8}
  sorted := make([]float64, len(original))
  copy(sorted, original)
  sort.Float64s(sorted)

  fmt.Println("Original:", original)
  fmt.Println("Sorted:  ", sorted)
}

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

go"Original: [7.1 2.3 5.6 1.8]"
"Sorted:   [1.8 2.3 5.6 7.1]"

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

  • функцию sort.Float64sAreSorted,
    которая проверяет, отсортирован ли срез чисел с плавающей точкой
  • функцию sort.Ints,
    которая сортирует срез целых чисел
  • функцию sort.Strings,
    которая сортирует срез строк
  • функцию sort.Reverse,
    которая позволяет отсортировать срез в обратном порядке