在 Go 语言中切片比数组更强大、灵活、方便,是一种轻量级的数据结构。切片是一个可变长度的序列,用于存储相似类型的元素,不允许在同一个切片中存储不同类型的元素。 Go 语言允许您根据切片的类型对切片的元素进行排序。因此,使用以下函数对float64类型的切片进行排序。这些函数是在 sort 包下定义的,因此您必须在程序中导入 sort 包才能访问这些函数:
1. Float64s:该函数仅用于对float64s的切片进行排序,并按升序对切片中的元素进行排序。
句法:
func Float64s(slc []float64)
这里, slc代表一个float64的切片。让我们借助一个例子来讨论这个概念:
例子:
// Go program to illustrate how
// to sort a slice of float64s
package main
import (
"fmt"
"sort"
)
// Main function
func main() {
// Creating and initializing slices
// Using shorthand declaration
scl1 := []float64{9.56, 4.56, 2.4,
10, 43, 0.56, 35.246}
scl2 := []float64{38.32, -32.23,
-45.56, 23.45, -0.43}
// Displaying slices
fmt.Println("Slice(Before):")
fmt.Println("Slice 1: ", scl1)
fmt.Println("Slice 2: ", scl2)
// Sorting the elements of the slice
// Using Float64s function
sort.Float64s(scl1)
sort.Float64s(scl2)
// Displaying the result
fmt.Println("\nSlice(After):")
fmt.Println("Slice 1: ", scl1)
fmt.Println("Slice 2: ", scl2)
}
输出:
Slice(Before):
Slice 1: [9.56 4.56 2.4 10 43 0.56 35.246]
Slice 2: [38.32 -32.23 -45.56 23.45 -0.43]
Slice(After):
Slice 1: [0.56 2.4 4.56 9.56 10 35.246 43]
Slice 2: [-45.56 -32.23 -0.43 23.45 38.32]
2. Float64sAreSorted:该函数用于检查给定的float64s切片是否处于排序形式(按递增顺序)。如果切片处于排序形式,则此方法返回 true,如果切片不处于排序形式,则返回 false。
句法:
func Float64sAreSorted(scl []float64) bool
这里, scl代表一个 float64s 的切片。让我们借助一个例子来讨论这个概念:
例子:
// Go program to illustrate how to check whether the
// given slice of float64 is in sorted form or not
package main
import (
"fmt"
"sort"
)
// Main function
func main() {
// Creating and initializing slices
// Using shorthand declaration
scl1 := []float64{9.56, 4.56, 2.4,
10, 43, 0.56, 35.246}
scl2 := []float64{-45.56, -32.23,
-0.43, 23.45, 38.32}
// Displaying slices
fmt.Println("Slices:")
fmt.Println("Slice 1: ", scl1)
fmt.Println("Slice 2: ", scl2)
// Checking the slice is in sorted form or not
// Using Float64sAreSorted function
res1 := sort.Float64sAreSorted(scl1)
res2 := sort.Float64sAreSorted(scl2)
// Displaying the result
fmt.Println("\nResult:")
fmt.Println("Is Slice 1 is sorted?: ", res1)
fmt.Println("Is Slice 2 is sorted?: ", res2)
}
输出:
Slices:
Slice 1: [9.56 4.56 2.4 10 43 0.56 35.246]
Slice 2: [-45.56 -32.23 -0.43 23.45 38.32]
Result:
Is Slice 1 is sorted?: false
Is Slice 2 is sorted?: true