Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Julia中数组的排序_Arrays_Sorting_Julia - Fatal编程技术网

Arrays Julia中数组的排序

Arrays Julia中数组的排序,arrays,sorting,julia,Arrays,Sorting,Julia,我有一个数组,我想按数组中的第一个元素对这些数组进行排序。朱莉娅身上可能有这样的事吗 比如我有 a = (Array{Int64, 1})[] push!(a, [5, 2 , 3]) push!(a, [3, 1 , 4]) 我想以这样的方式排序,结果将是[[3,1,4],[5,2,3]。数组将根据它们的第一个元素进行排序 我需要这个,因为Julia中的heap无法将数组作为heap中的元素。知道吗?1.0版的更新: sort(a) 就是这样。Julia 1.0版定义了,谢谢。这就可以了。

我有一个数组,我想按数组中的第一个元素对这些数组进行排序。朱莉娅身上可能有这样的事吗

比如我有

a = (Array{Int64, 1})[]
push!(a, [5, 2 , 3])
push!(a, [3, 1 , 4])
我想以这样的方式排序,结果将是
[[3,1,4],[5,2,3]
。数组将根据它们的第一个元素进行排序


我需要这个,因为Julia中的heap无法将数组作为heap中的元素。知道吗?

1.0版的更新:

sort(a)

就是这样。Julia 1.0版定义了
,谢谢。这就可以了。我只是想问一下。你对Julia中的堆熟悉吗。你知道Julia中的堆是否可以将数组作为元素吗?我知道python有这个机会,我想在它中复制Julia,而数组是我唯一想到的想法。但我不知道将其设置为时间复杂度比堆的时间复杂度最差。使用可选的
ord
参数指定字典顺序:
Collections.heapify(a,Base.Order.lexicographic)
。有趣。但是堆顺序是否使用
Collections.heappush!(v,x[,ord])
还有?是否有可能使用它将数组添加到堆中?类似于
Collections.heappush!(a,[5,2,3])
?我尝试了很多差异,但没有任何效果。我使用了例如
Collections.heappush!(a,[10,1,4])
添加元素,但它不起作用,但在您对heapify的建议之后,我尝试了
Collections.heappush!(a[10,1,4],Base.Order.Lexicographic)
而且它很有效,非常感谢。但是Lexicographic是基于字母表的排序还是基于字母表的排序?是否有可能使用这个
lt=(x,y)->isless(x[1],y[1])
?词典只是意味着它按第一个元素排序,然后如果它们相等,它将进入下一个元素。它还处理不同长度的数组(包括空数组)。但是如果您只想更改
lt
比较函数,您可以使用
Base.Order.Order((x,y)->isless(x[1],y[1])构造自定义顺序,identity,false)
。另外,一行代码:
排序(a,by=first)
工作(
first
是一个需要记住的有用函数)。
julia> sort(a, lt=(x,y)->isless(x[1], y[1]))
2-element Array{Array{Int64,1},1}:
 [3,1,4]
 [5,2,3]
julia> push!(a, [5, 1, 1])
3-element Array{Array{Int64,1},1}:
 [5,2,3]
 [3,1,4]
 [5,1,1]

julia> sort(a, lt=lexless)
3-element Array{Array{Int64,1},1}:
 [3,1,4]
 [5,1,1]
 [5,2,3]