当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia sort!用法及代码示例


用法一

sort!(v; alg::Algorithm=defalg(v), lt=isless, by=identity, rev::Bool=false, order::Ordering=Forward)

就地对向量v 进行排序。 QuickSort 默认用于数值数组,而 MergeSort 用于其他数组。您可以通过 alg 关键字指定要使用的算法(有关可用算法,请参见 Sorting Algorithms)。 by 关键字允许您提供一个函数,该函数将在比较之前应用于每个元素; lt 关键字允许提供自定义 "less than" 函数(请注意,对于每个 xy ,只有 lt(x,y)lt(y,x) 之一可以返回 true );使用 rev=true 反转排序顺序。这些选项是独立的,可以在所有可能的组合中一起使用:如果同时指定bylt,则lt函数应用于by函数的结果; rev=true 反转通过 bylt 关键字指定的任何顺序。

例子

julia> v = [3, 1, 2]; sort!(v); v
3-element Vector{Int64}:
 1
 2
 3

julia> v = [3, 1, 2]; sort!(v, rev = true); v
3-element Vector{Int64}:
 3
 2
 1

julia> v = [(1, "c"), (3, "a"), (2, "b")]; sort!(v, by = x -> x[1]); v
3-element Vector{Tuple{Int64, String}}:
 (1, "c")
 (2, "b")
 (3, "a")

julia> v = [(1, "c"), (3, "a"), (2, "b")]; sort!(v, by = x -> x[2]); v
3-element Vector{Tuple{Int64, String}}:
 (3, "a")
 (2, "b")
 (1, "c")

用法二

sort!(A; dims::Integer, alg::Algorithm=defalg(A), lt=isless, by=identity, rev::Bool=false, order::Ordering=Forward)

沿维度 dims 对多维数组 A 进行排序。有关可能的关键字参数的说明,请参见 sort!

要对数组的切片进行排序,请参阅 sortslices

Julia 1.1

此函数至少需要 Julia 1.1。

例子

julia> A = [4 3; 1 2]
2×2 Matrix{Int64}:
 4  3
 1  2

julia> sort!(A, dims = 1); A
2×2 Matrix{Int64}:
 1  2
 4  3

julia> sort!(A, dims = 2); A
2×2 Matrix{Int64}:
 1  2
 3  4

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.sort! — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。