當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。